memory: autofree fix
parent
7b689d8c52
commit
3a938972df
|
@ -38,7 +38,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
pub fn cgen(files []ast.File, table &table.Table) string {
|
pub fn cgen(files []ast.File, table &table.Table) string {
|
||||||
println('start cgen2')
|
// println('start cgen2')
|
||||||
mut g := Gen{
|
mut g := Gen{
|
||||||
out: strings.new_builder(100)
|
out: strings.new_builder(100)
|
||||||
typedefs: strings.new_builder(100)
|
typedefs: strings.new_builder(100)
|
||||||
|
@ -50,15 +50,24 @@ pub fn cgen(files []ast.File, table &table.Table) string {
|
||||||
indent: -1
|
indent: -1
|
||||||
}
|
}
|
||||||
g.init()
|
g.init()
|
||||||
|
mut autofree_used := false
|
||||||
for file in files {
|
for file in files {
|
||||||
// println('cgen "$g.file.path" $file.stmts.len')
|
|
||||||
g.file = file
|
g.file = file
|
||||||
|
// println('\ncgen "$g.file.path" nr_stmts=$file.stmts.len')
|
||||||
if g.file.path == '' || g.file.path.ends_with('.vv') || g.file.path.contains('/vlib/') {
|
if g.file.path == '' || g.file.path.ends_with('.vv') || g.file.path.contains('/vlib/') {
|
||||||
// cgen test or building V
|
// cgen test or building V
|
||||||
|
// println('autofree=false')
|
||||||
g.autofree = false
|
g.autofree = false
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
g.autofree = true
|
||||||
|
autofree_used = true
|
||||||
|
}
|
||||||
g.stmts(file.stmts)
|
g.stmts(file.stmts)
|
||||||
}
|
}
|
||||||
|
if autofree_used {
|
||||||
|
g.autofree = true // so that void _vcleanup is generated
|
||||||
|
}
|
||||||
g.write_variadic_types()
|
g.write_variadic_types()
|
||||||
// g.write_str_definitions()
|
// g.write_str_definitions()
|
||||||
g.write_init_function()
|
g.write_init_function()
|
||||||
|
|
Loading…
Reference in New Issue