[vala] Fix use of generics in base expressions inside constructors



commit d234cb597bcd1e0e8232b15d0099c6479ca3ae11
Author: Didier 'Ptitjes <ptitjes free fr>
Date:   Wed Aug 26 12:26:12 2009 +0200

    Fix use of generics in base expressions inside constructors
    
    Fixes bug 593137.

 codegen/valaccodebasemodule.vala |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala
index a31b0c7..22f80af 100644
--- a/codegen/valaccodebasemodule.vala
+++ b/codegen/valaccodebasemodule.vala
@@ -1876,7 +1876,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 	private CCodeExpression get_type_id_expression (DataType type, bool is_chainup = false) {
 		if (type is GenericType) {
 			string var_name = "%s_type".printf (type.type_parameter.name.down ());
-			if (is_in_generic_type (type) && !is_chainup) {
+			if (is_in_generic_type (type) && !is_chainup && !in_creation_method) {
 				return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), var_name);
 			} else {
 				return new CCodeIdentifier (var_name);
@@ -1926,7 +1926,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 			return new CCodeIdentifier (dup_function);
 		} 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) {
+			if (is_in_generic_type (type) && !is_chainup && !in_creation_method) {
 				return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
 			} else {
 				return new CCodeIdentifier (func_name);
@@ -2093,7 +2093,7 @@ internal class Vala.CCodeBaseModule : CCodeModule {
 			return new CCodeIdentifier (unref_function);
 		} 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) {
+			if (is_in_generic_type (type) && !is_chainup && !in_creation_method) {
 				return new CCodeMemberAccess.pointer (new CCodeMemberAccess.pointer (new CCodeIdentifier ("self"), "priv"), func_name);
 			} else {
 				return new CCodeIdentifier (func_name);



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