[vala] GAsync: Fix closures in instance async methods



commit a7ce6392c8d6193fe7d8e4fafee7a87bcb1ac1f4
Author: Jürg Billeter <j bitron ch>
Date:   Tue Sep 22 18:19:58 2009 +0200

    GAsync: Fix closures in instance async methods

 codegen/valaccodebasemodule.vala   |    2 +-
 codegen/valaccodemethodmodule.vala |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index 5fa12f0..0b15c61 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -1721,7 +1721,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 				cblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), "_data%d_".printf (parent_block_id)), ref_call)));
 			} else if (in_constructor || (current_method != null && current_method.binding == MemberBinding.INSTANCE)) {
 				var ref_call = new CCodeFunctionCall (get_dup_func_expression (new ObjectType (current_class), b.source_reference));
-				ref_call.add_argument (new CCodeIdentifier ("self"));
+				ref_call.add_argument (get_result_cexpression ("self"));
 
 				cblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), "self"), ref_call)));
 			}
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index bb28ecf..bed3273 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -425,7 +425,7 @@ internal class Vala.CCodeMethodModule : CCodeStructModule {
 						}
 						int parent_block_id = get_block_id (parent_closure_block);
 
-						var parent_data = new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), "_data%d_".printf (parent_block_id));
+						var parent_data = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data%d_".printf (block_id)), "_data%d_".printf (parent_block_id));
 						var cdecl = new CCodeDeclaration ("Block%dData*".printf (parent_block_id));
 						cdecl.add_declarator (new CCodeVariableDeclarator ("_data%d_".printf (parent_block_id), parent_data));
 
@@ -438,7 +438,7 @@ internal class Vala.CCodeMethodModule : CCodeStructModule {
 					// add self variable for closures
 					// as closures have block data parameter
 					if (m.binding == MemberBinding.INSTANCE) {
-						var cself = new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), "self");
+						var cself = new CCodeMemberAccess.pointer (new CCodeIdentifier ("_data%d_".printf (block_id)), "self");
 						var cdecl = new CCodeDeclaration ("%s *".printf (current_class.get_cname ()));
 						cdecl.add_declarator (new CCodeVariableDeclarator ("self", cself));
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]