[vala] Fix delegate variables in GObject creation methods



commit 9c0e7c1447bb932df92e6f0a0966e1da363f2c9d
Author: Jürg Billeter <j bitron ch>
Date:   Mon Sep 28 18:01:46 2009 +0200

    Fix delegate variables in GObject creation methods
    
    Fixes bug 596621.

 codegen/valaccodemethodmodule.vala |    1 +
 tests/Makefile.am                  |    1 +
 tests/objects/bug596621.vala       |   15 +++++++++++++++
 3 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/codegen/valaccodemethodmodule.vala b/codegen/valaccodemethodmodule.vala
index aa2c1fe..93d49ab 100644
--- a/codegen/valaccodemethodmodule.vala
+++ b/codegen/valaccodemethodmodule.vala
@@ -311,6 +311,7 @@ internal class Vala.CCodeMethodModule : CCodeStructModule {
 						if (!local.floating && requires_destroy (local.variable_type)) {
 							var ma = new MemberAccess.simple (local.name);
 							ma.symbol_reference = local;
+							ma.value_type = local.variable_type.copy ();
 							cblock.add_statement (new CCodeExpressionStatement (get_unref_expression (get_variable_cexpression (local.name), local.variable_type, ma)));
 						}
 					}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8c83e86..f1058b8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -48,6 +48,7 @@ TESTS = \
 	objects/test-029.vala \
 	objects/test-034.vala \
 	objects/bug593260.vala \
+	objects/bug596621.vala \
 	errors/errors.vala \
 	errors/bug596228.vala \
 	asynchronous/bug595735.vala \
diff --git a/tests/objects/bug596621.vala b/tests/objects/bug596621.vala
new file mode 100644
index 0000000..348ea40
--- /dev/null
+++ b/tests/objects/bug596621.vala
@@ -0,0 +1,15 @@
+class Foo : Object {
+	[CCode (has_construct_function = false)]
+	public Foo () {
+	}
+}
+
+class Bar : Foo {
+	public Bar () {
+		Func baz;
+	}
+}
+
+void main () {
+}
+



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