[vala] GAsync: Fix closures in instance async methods
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [vala] GAsync: Fix closures in instance async methods
- Date: Tue, 22 Sep 2009 16:20:35 +0000 (UTC)
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]