autofree: a small simplification
							parent
							
								
									f074d766e5
								
							
						
					
					
						commit
						9149d8ecb5
					
				|  | @ -538,7 +538,7 @@ fn (mut g Gen) fn_call(node ast.CallExpr) { | ||||||
| 	// like `foo(get_string())` or `foo(a + b)`
 | 	// like `foo(get_string())` or `foo(a + b)`
 | ||||||
| 	mut free_tmp_arg_vars := g.autofree && g.pref.experimental && !g.is_builtin_mod && | 	mut free_tmp_arg_vars := g.autofree && g.pref.experimental && !g.is_builtin_mod && | ||||||
| 		node.args.len > 0 && !node.args[0].typ.has_flag(.optional) // TODO copy pasta checker.v
 | 		node.args.len > 0 && !node.args[0].typ.has_flag(.optional) // TODO copy pasta checker.v
 | ||||||
| 	mut cur_line := '' | 	// mut cur_line := ''
 | ||||||
| 	if free_tmp_arg_vars { | 	if free_tmp_arg_vars { | ||||||
| 		free_tmp_arg_vars = false // set the flag to true only if we have at least one arg to free
 | 		free_tmp_arg_vars = false // set the flag to true only if we have at least one arg to free
 | ||||||
| 		g.tmp_count2++ | 		g.tmp_count2++ | ||||||
|  | @ -552,10 +552,10 @@ fn (mut g Gen) fn_call(node ast.CallExpr) { | ||||||
| 			t := '_tt${g.tmp_count2}_arg_expr_${fn_name}_$i' | 			t := '_tt${g.tmp_count2}_arg_expr_${fn_name}_$i' | ||||||
| 			g.called_fn_name = name | 			g.called_fn_name = name | ||||||
| 			str_expr := g.write_expr_to_string(arg.expr) | 			str_expr := g.write_expr_to_string(arg.expr) | ||||||
| 			// g.insert_before_stmt('string $t = $str_expr; // new3. to free $i ')
 | 			g.insert_before_stmt('string $t = $str_expr; // new4. to free arg #$i name=$name') | ||||||
| 			cur_line = g.go_before_stmt(0) | 			// cur_line = g.go_before_stmt(0)
 | ||||||
| 			// println('cur line ="$cur_line"')
 | 			// println('cur line ="$cur_line"')
 | ||||||
| 			g.writeln('string $t = $str_expr; // new3. to free arg #$i name=$name') | 			// g.writeln('string $t = $str_expr; // new3. to free arg #$i name=$name')
 | ||||||
| 			// Now free the tmp arg vars right after the function call
 | 			// Now free the tmp arg vars right after the function call
 | ||||||
| 			g.strs_to_free << 'string_free(&$t);' | 			g.strs_to_free << 'string_free(&$t);' | ||||||
| 		} | 		} | ||||||
|  | @ -623,10 +623,10 @@ fn (mut g Gen) fn_call(node ast.CallExpr) { | ||||||
| 		g.write(')') | 		g.write(')') | ||||||
| 	} else { | 	} else { | ||||||
| 		// Simple function call
 | 		// Simple function call
 | ||||||
| 		if free_tmp_arg_vars { | 		// if free_tmp_arg_vars {
 | ||||||
| 			// g.writeln(';')
 | 		// g.writeln(';')
 | ||||||
| 			g.write(cur_line + ' /* <== af cur line*/') | 		// g.write(cur_line + ' /* <== af cur line*/')
 | ||||||
| 		} | 		// }
 | ||||||
| 		g.write('${g.get_ternary_name(name)}(') | 		g.write('${g.get_ternary_name(name)}(') | ||||||
| 		if g.is_json_fn { | 		if g.is_json_fn { | ||||||
| 			g.write(json_obj) | 			g.write(json_obj) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue