]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
GAsync: Fix closure's field names
authorDidier 'Ptitjes <ptitjes@free.fr>
Sun, 31 May 2009 02:35:48 +0000 (04:35 +0200)
committerJürg Billeter <j@bitron.ch>
Fri, 3 Jul 2009 14:39:37 +0000 (15:39 +0100)
Parameter names must be escaped like other Vala variables.

Signed-off-by: Didier 'Ptitjes <ptitjes@free.fr>
codegen/valaccodememberaccessmodule.vala
codegen/valagasyncmodule.vala

index 4bfd9163d5168ee7f2859587a039a333ad9c11a7..a225c80ef7f4a9be1eafaac7fc6fd08d41a6042f 100644 (file)
@@ -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 ()) {
index c49f6a289d682e7944b8cfe5b4bfe61c3e0f70b8..f2ab75d3426fb839d9949b7a741cc6885436b6bf 100644 (file)
@@ -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)))));
                        }
                }