2008-10-17 Jürg Billeter <j@bitron.ch>
* vala/valainterface.vala:
* gobject/valaccodetypesymbolbinding.vala:
Fix interface properties in GObject classes
svn path=/trunk/; revision=1851
2008-10-17 Jürg Billeter <j@bitron.ch>
+ * vala/valainterface.vala:
+ * gobject/valaccodetypesymbolbinding.vala:
+
+ Fix interface properties in GObject classes
+
+2008-10-17 Jürg Billeter <j@bitron.ch>
+
* gobject/valaccodeclassbinding.vala:
* gobject/valaccodegenerator.vala:
* vapi/glib-2.0.vapi:
if ((prop.property_type.data_type is Class && !(((Class) prop.property_type.data_type).is_compact)) || prop.property_type.data_type is Interface) {
- //if ((prop.property_type.data_type is Class && ((Class) prop.property_type.data_type).is_subtype_of (codegen.gobject_type)) || prop.property_type.data_type is Interface) {
string param_spec_name = prop.property_type.data_type.get_param_spec_function ();
- if ( param_spec_name == null ) {
+ if (param_spec_name == null) {
cspec.call = new CCodeIdentifier ("g_param_spec_pointer");
} else {
cspec.call = new CCodeIdentifier ( param_spec_name );
public override CodeBinding? create_code_binding (CodeGenerator codegen) {
return codegen.create_interface_binding (this);
}
+
+ public override string? get_param_spec_function () {
+ foreach (DataType prerequisite in prerequisites) {
+ var prereq = prerequisite as ObjectType;
+ var cl = prereq.type_symbol as Class;
+ if (cl != null) {
+ return cl.get_param_spec_function ();
+ }
+ }
+
+ return null;
+ }
}