From 43b536ac854892600b74b5e104e0706d91f2b05a Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Mon, 6 Nov 2006 17:03:06 +0000 Subject: [PATCH] use g_value_set_object for interfaces implement get_type_id MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2006-11-06 Jürg Billeter * vala/valacodegenerator.vala: use g_value_set_object for interfaces * vala/valainterface.vala: implement get_type_id svn path=/trunk/; revision=168 --- vala/ChangeLog | 5 +++++ vala/vala/valacodegenerator.vala | 2 +- vala/vala/valainterface.vala | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/vala/ChangeLog b/vala/ChangeLog index e43c212..aecf65e 100644 --- a/vala/ChangeLog +++ b/vala/ChangeLog @@ -1,3 +1,8 @@ +2006-11-06 Jürg Billeter + + * vala/valacodegenerator.vala: use g_value_set_object for interfaces + * vala/valainterface.vala: implement get_type_id + 2006-11-02 Jürg Billeter * configure.ac: Post-release version bump diff --git a/vala/vala/valacodegenerator.vala b/vala/vala/valacodegenerator.vala index 60161aa..beeeb68 100644 --- a/vala/vala/valacodegenerator.vala +++ b/vala/vala/valacodegenerator.vala @@ -707,7 +707,7 @@ public class Vala.CodeGenerator : CodeVisitor { } private ref CCodeIdentifier! get_value_setter_function (TypeReference! type_reference) { - if (type_reference.data_type is Class) { + if (type_reference.data_type is Class || type_reference.data_type is Interface) { return new CCodeIdentifier ("g_value_set_object"); } else if (type_reference.data_type == string_type.data_type) { return new CCodeIdentifier ("g_value_set_string"); diff --git a/vala/vala/valainterface.vala b/vala/vala/valainterface.vala index 661bfb7..3bfef9c 100644 --- a/vala/vala/valainterface.vala +++ b/vala/vala/valainterface.vala @@ -37,6 +37,7 @@ public class Vala.Interface : DataType { private string cname; private string lower_case_csuffix; private string type_cname; + private string type_id; /** * Creates a new interface. @@ -276,4 +277,12 @@ public class Vala.Interface : DataType { public void set_type_cname (string! type_cname) { this.type_cname = type_cname; } + + public override string get_type_id () { + if (type_id == null) { + type_id = get_upper_case_cname ("TYPE_"); + } + + return type_id; + } } -- 2.7.4