@@ -28,7 +28,7 @@ fn (mut g Gen) is_used_by_main(node ast.FnDecl) bool {
28
28
return is_used_by_main
29
29
}
30
30
31
- fn (mut g Gen) process_fn_decl (node ast.FnDecl) {
31
+ fn (mut g Gen) fn_decl (node ast.FnDecl) {
32
32
if ! g.is_used_by_main (node) {
33
33
return
34
34
}
@@ -43,6 +43,11 @@ fn (mut g Gen) process_fn_decl(node ast.FnDecl) {
43
43
mut skip := false
44
44
pos := g.out.len
45
45
should_bundle_module := util.should_bundle_module (node.mod)
46
+ /*
47
+ if node.name.contains('i_error') {
48
+ println(g.table.type_str(node.params[0].typ))
49
+ }
50
+ */
46
51
if g.pref.build_mode == .build_module {
47
52
// if node.name.contains('parse_text') {
48
53
// println('!!! $node.name mod=$node.mod, built=$g.module_built')
@@ -77,13 +82,13 @@ fn (mut g Gen) process_fn_decl(node ast.FnDecl) {
77
82
if node.is_main {
78
83
g.has_main = true
79
84
}
80
- if node.name == 'backtrace' || node.name == 'backtrace_symbols'
81
- || node.name == 'backtrace_symbols_fd' {
85
+ is_backtrace := node.name.starts_with ('backtrace' ) // TODO PERF remove this from here
86
+ && node.name in ['backtrace_symbols' , 'backtrace' , 'backtrace_symbols_fd' ]
87
+ if is_backtrace {
82
88
g.write ('\n #ifndef __cplusplus\n ' )
83
89
}
84
90
g.gen_fn_decl (node, skip)
85
- if node.name == 'backtrace' || node.name == 'backtrace_symbols'
86
- || node.name == 'backtrace_symbols_fd' {
91
+ if is_backtrace {
87
92
g.write ('\n #endif\n ' )
88
93
}
89
94
g.fn_decl = keep_fn_decl
@@ -454,7 +459,7 @@ fn (mut g Gen) gen_anon_fn_decl(mut node ast.AnonFn) {
454
459
pos := g.out.len
455
460
was_anon_fn := g.anon_fn
456
461
g.anon_fn = true
457
- g.process_fn_decl (node.decl)
462
+ g.fn_decl (node.decl)
458
463
g.anon_fn = was_anon_fn
459
464
builder.write_string (g.out.cut_to (pos))
460
465
g.anon_fn_definitions << builder.str ()
0 commit comments