]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix use of generics in async methods in generic types
authorJürg Billeter <j@bitron.ch>
Thu, 24 Sep 2009 17:23:21 +0000 (19:23 +0200)
committerJürg Billeter <j@bitron.ch>
Thu, 24 Sep 2009 17:23:21 +0000 (19:23 +0200)
Fixes bug 596177.

codegen/valaccodebasemodule.vala

index 0b15c617d8971c5dab844e6e1114fe70567fb4c5..25cdbe3d003802267f3c1d322117cd09eb1972bb 100644 (file)
@@ -2167,7 +2167,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
                if (type is GenericType) {
                        string var_name = "%s_type".printf (type.type_parameter.name.down ());
                        if (is_in_generic_type (type) && !is_chainup && !in_creation_method) {
-                               return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), var_name);
+                               return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (get_result_cexpression ("self"), "priv"), var_name);
                        } else {
                                return new CCodeIdentifier (var_name);
                        }
@@ -2217,7 +2217,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
                } else if (type.type_parameter != null) {
                        string func_name = "%s_dup_func".printf (type.type_parameter.name.down ());
                        if (is_in_generic_type (type) && !is_chainup && !in_creation_method) {
-                               return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
+                               return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (get_result_cexpression ("self"), "priv"), func_name);
                        } else {
                                return new CCodeIdentifier (func_name);
                        }
@@ -2391,7 +2391,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
                } else if (type.type_parameter != null && current_type_symbol is Class) {
                        string func_name = "%s_destroy_func".printf (type.type_parameter.name.down ());
                        if (is_in_generic_type (type) && !is_chainup && !in_creation_method) {
-                               return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
+                               return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (get_result_cexpression ("self"), "priv"), func_name);
                        } else {
                                return new CCodeIdentifier (func_name);
                        }