[vala] GAsync: Fix closure's field names



commit 7a8d90ddbbdc14fc6c8b5cae158e09e2e9c539ca
Author: Didier 'Ptitjes <ptitjes free fr>
Date:   Sun May 31 04:35:48 2009 +0200

    GAsync: Fix closure's field names
    
    Parameter names must be escaped like other Vala variables.
    
    Signed-off-by: Didier 'Ptitjes <ptitjes free fr>

 codegen/valaccodememberaccessmodule.vala |    2 +-
 codegen/valagasyncmodule.vala            |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valaccodememberaccessmodule.vala b/codegen/valaccodememberaccessmodule.vala
index 4bfd916..a225c80 100644
--- a/codegen/valaccodememberaccessmodule.vala
+++ b/codegen/valaccodememberaccessmodule.vala
@@ -320,7 +320,7 @@ internal class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
 			if (p.name == "this") {
 				if (current_method != null && current_method.coroutine) {
 					// use closure
-					expr.ccodenode = get_variable_cexpression ("self");
+					expr.ccodenode = new CCodeMemberAccess.pointer (new CCodeIdentifier ("data"), "self");
 				} else {
 					var st = current_type_symbol as Struct;
 					if (st != null && !st.is_simple_type ()) {
diff --git a/codegen/valagasyncmodule.vala b/codegen/valagasyncmodule.vala
index c49f6a2..f2ab75d 100644
--- a/codegen/valagasyncmodule.vala
+++ b/codegen/valagasyncmodule.vala
@@ -42,7 +42,7 @@ internal class Vala.GAsyncModule : GSignalModule {
 		}
 
 		foreach (FormalParameter param in m.get_parameters ()) {
-			data.add_field (param.parameter_type.get_cname (), param.name);
+			data.add_field (param.parameter_type.get_cname (), get_variable_cname (param.name));
 		}
 
 		if (!(m.return_type is VoidType)) {
@@ -151,7 +151,7 @@ internal class Vala.GAsyncModule : GSignalModule {
 
 		foreach (FormalParameter param in m.get_parameters ()) {
 			if (param.direction != ParameterDirection.OUT) {
-				asyncblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("data"), param.name), new CCodeIdentifier (param.name))));
+				asyncblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (new CCodeIdentifier ("data"), get_variable_cname (param.name)), new CCodeIdentifier (get_variable_cname (param.name)))));
 			}
 		}
 



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