From: Jürg Billeter Date: Wed, 16 Sep 2009 15:32:10 +0000 (+0200) Subject: GAsync: Fix generating array dup/copy wrappers from async method X-Git-Tag: 0.7.6~36 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=26e1ee3b69e51787c66c332978f65b91c99f88bd;p=thirdparty%2Fvala.git GAsync: Fix generating array dup/copy wrappers from async method --- diff --git a/codegen/valaccodearraymodule.vala b/codegen/valaccodearraymodule.vala index 1bc1f633c..0dc15721e 100644 --- a/codegen/valaccodearraymodule.vala +++ b/codegen/valaccodearraymodule.vala @@ -690,7 +690,9 @@ internal class Vala.CCodeArrayModule : CCodeMethodCallModule { var block = new CCodeBlock (); if (requires_copy (array_type.element_type)) { + var old_symbol = current_symbol; var old_temp_vars = temp_vars; + current_symbol = null; var cdecl = new CCodeDeclaration (array_type.get_cname ()); var cvardecl = new CCodeVariableDeclarator ("result"); @@ -718,6 +720,7 @@ internal class Vala.CCodeArrayModule : CCodeMethodCallModule { var cfrag = new CCodeFragment (); append_temp_decl (cfrag, temp_vars); block.add_statement (cfrag); + current_symbol = old_symbol; temp_vars = old_temp_vars; } else { var dup_call = new CCodeFunctionCall (new CCodeIdentifier ("g_memdup")); @@ -761,7 +764,9 @@ internal class Vala.CCodeArrayModule : CCodeMethodCallModule { var block = new CCodeBlock (); if (requires_copy (array_type.element_type)) { + var old_symbol = current_symbol; var old_temp_vars = temp_vars; + current_symbol = null; var idx_decl = new CCodeDeclaration ("int"); idx_decl.add_declarator (new CCodeVariableDeclarator ("i")); @@ -778,6 +783,7 @@ internal class Vala.CCodeArrayModule : CCodeMethodCallModule { var cfrag = new CCodeFragment (); append_temp_decl (cfrag, temp_vars); block.add_statement (cfrag); + current_symbol = old_symbol; temp_vars = old_temp_vars; } else { source_declarations.add_include ("string.h");