From: Juerg Billeter Date: Thu, 30 Aug 2007 14:47:36 +0000 (+0000) Subject: fix object creation for non-GObject classes without creation method X-Git-Tag: VALA_0_1_3~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=78cb7e64a9228c549b86bf1fcbe83ea08f0167df;p=thirdparty%2Fvala.git fix object creation for non-GObject classes without creation method 2007-08-30 Juerg Billeter * gobject/valacodegenerator.vala: fix object creation for non-GObject classes without creation method svn path=/trunk/; revision=539 --- diff --git a/ChangeLog b/ChangeLog index f0caee1f8..93a75d8ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-08-30 Jürg Billeter + + * gobject/valacodegenerator.vala: fix object creation for non-GObject + classes without creation method + 2007-08-30 Jürg Billeter * vala/valaclass.vala, gobject/valacodegenerator.vala, diff --git a/gobject/valacodegenerator.vala b/gobject/valacodegenerator.vala index 264bca248..875b09960 100644 --- a/gobject/valacodegenerator.vala +++ b/gobject/valacodegenerator.vala @@ -2347,7 +2347,11 @@ public class Vala.CodeGenerator : CodeVisitor { public override void visit_end_object_creation_expression (ObjectCreationExpression! expr) { if (expr.symbol_reference == null) { // no creation method - if (expr.type_reference.data_type is Class) { + if (expr.type_reference.data_type == glist_type || + expr.type_reference.data_type == gslist_type) { + // NULL is an empty list + expr.ccodenode = new CCodeConstant ("NULL"); + } else if (expr.type_reference.data_type is Class && expr.type_reference.data_type.is_subtype_of (gobject_type)) { var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_object_new")); ccall.add_argument (new CCodeConstant (expr.type_reference.data_type.get_type_id ())); @@ -2355,10 +2359,6 @@ public class Vala.CodeGenerator : CodeVisitor { ccall.add_argument (new CCodeConstant ("NULL")); expr.ccodenode = ccall; - } else if (expr.type_reference.data_type == glist_type || - expr.type_reference.data_type == gslist_type) { - // NULL is an empty list - expr.ccodenode = new CCodeConstant ("NULL"); } else { var ccall = new CCodeFunctionCall (new CCodeIdentifier ("g_new0"));