Skip to content

Commit

Permalink
str_intp: autofree memory leak fix
Browse files Browse the repository at this point in the history
  • Loading branch information
kbkpbot committed Jan 22, 2025
1 parent 4e68a86 commit 329719e
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions vlib/v/gen/c/str_intp.v
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,14 @@ fn (mut g Gen) string_inter_literal(node ast.StringInterLiteral) {
}
}
}

mut tmp_var := ''
mut curr_line := ''
if g.is_autofree {
curr_line = g.go_before_ternary().trim_space() + ' '
tmp_var = g.new_tmp_var()
g.write('\tstring ${tmp_var} = ')
}
g.write2('str_intp(', node.vals.len.str())
g.write(', _MOV((StrIntpData[]){')
for i, val in node.vals {
Expand Down Expand Up @@ -294,4 +302,15 @@ fn (mut g Gen) string_inter_literal(node ast.StringInterLiteral) {
}
}
g.write('}))')
if g.is_autofree {
g.writeln(';')
g.write(curr_line + tmp_var)
mut scope := g.file.scope.innermost(node.pos.pos)
scope.register(ast.Var{
name: tmp_var
typ: ast.string_type
is_autofree_tmp: true
pos: node.pos
})
}
}

0 comments on commit 329719e

Please sign in to comment.