use g_value_set_object for interfaces implement get_type_id
authorJürg Billeter <j@bitron.ch>
Mon, 6 Nov 2006 17:03:06 +0000 (17:03 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Mon, 6 Nov 2006 17:03:06 +0000 (17:03 +0000)
2006-11-06  Jürg Billeter  <j@bitron.ch>

* vala/valacodegenerator.vala: use g_value_set_object for interfaces
* vala/valainterface.vala: implement get_type_id

svn path=/trunk/; revision=168

vala/ChangeLog
vala/vala/valacodegenerator.vala
vala/vala/valainterface.vala

index e43c212..aecf65e 100644 (file)
@@ -1,3 +1,8 @@
+2006-11-06  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valacodegenerator.vala: use g_value_set_object for interfaces
+       * vala/valainterface.vala: implement get_type_id
+
 2006-11-02  Jürg Billeter  <j@bitron.ch>
 
        * configure.ac: Post-release version bump
index 60161aa..beeeb68 100644 (file)
@@ -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");
index 661bfb7..3bfef9c 100644 (file)
@@ -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;
+       }
 }