Fix runtime error when using non-abstract properties in interfaces, fixes
authorJürg Billeter <j@bitron.ch>
Sat, 27 Sep 2008 10:02:06 +0000 (10:02 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sat, 27 Sep 2008 10:02:06 +0000 (10:02 +0000)
2008-09-27  Jürg Billeter  <j@bitron.ch>

* gobject/valaccodeinterfacebinding.vala:

Fix runtime error when using non-abstract properties in interfaces,
fixes bug 539719

svn path=/trunk/; revision=1799

ChangeLog
gobject/valaccodeinterfacebinding.vala

index 9fde6ca..4d0956d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-09-27  Jürg Billeter  <j@bitron.ch>
 
+       * gobject/valaccodeinterfacebinding.vala:
+
+       Fix runtime error when using non-abstract properties in interfaces,
+       fixes bug 539719
+
+2008-09-27  Jürg Billeter  <j@bitron.ch>
+
        * vapi/packages/goocanvas/:
 
        Various fixes to the GooCanvas bindings,
index 1945cfc..caf93e9 100644 (file)
@@ -121,11 +121,13 @@ public class Vala.CCodeInterfaceBinding : CCodeObjectTypeSymbolBinding {
                        /* create properties */
                        var props = iface.get_properties ();
                        foreach (Property prop in props) {
-                               var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_interface_install_property"));
-                               cinst.add_argument (new CCodeIdentifier ("iface"));
-                               cinst.add_argument (get_param_spec (prop));
+                               if (prop.is_abstract) {
+                                       var cinst = new CCodeFunctionCall (new CCodeIdentifier ("g_object_interface_install_property"));
+                                       cinst.add_argument (new CCodeIdentifier ("iface"));
+                                       cinst.add_argument (get_param_spec (prop));
 
-                               init_block.add_statement (new CCodeExpressionStatement (cinst));
+                                       init_block.add_statement (new CCodeExpressionStatement (cinst));
+                               }
                        }
                }