2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
+ Bug 557379 – g-ir-generate not writing the 'abstract' attribute
+
+ * tests/scanner/drawable-1.0-expected.tgir:
+ * tests/scanner/drawable-injected-1.0-expected.tgir:
+ * tests/scanner/foo-1.0-expected.tgir:
+ * tools/generate.c (write_object_info): write 'abstract'
+ attribute for classes
+
+2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
+
Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
* tests/scanner/Makefile.am:
<include name="GObject" version="2.0"/>
<include name="GLib" version="2.0"/>
<namespace name="drawable" version="1.0" shared-library="drawable">
- <class name="TestDrawable" parent="GObject.Object" glib:type-name="TestDrawable" glib:get-type="test_drawable_get_type">
+ <class name="TestDrawable" parent="GObject.Object" abstract="1" glib:type-name="TestDrawable" glib:get-type="test_drawable_get_type">
<field name="parent_instance" offset="0">
<type name="GObject.Object"/>
</field>
<include name="GObject" version="2.0"/>
<include name="GLib" version="2.0"/>
<namespace name="drawable" version="1.0" shared-library="drawable">
- <class name="TestDrawable" parent="GObject.Object" glib:type-name="TestDrawable" glib:get-type="test_drawable_get_type">
+ <class name="TestDrawable" parent="GObject.Object" abstract="1" glib:type-name="TestDrawable" glib:get-type="test_drawable_get_type">
<field name="parent_instance" offset="0">
<type name="GObject.Object"/>
</field>
<type name="GObject.ObjectClass"/>
</field>
</record>
- <class name="Subobject" parent="Object" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type">
+ <class name="Subobject" parent="Object" abstract="1" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type">
<implements name="Interface"/>
<field name="parent_instance" offset="0">
<type name="GObject.Object"/>
const gchar *type_name;
const gchar *type_init;
gboolean deprecated;
+ gboolean is_abstract;
GIObjectInfo *pnode;
gint i;
name = g_base_info_get_name ((GIBaseInfo *)info);
deprecated = g_base_info_is_deprecated ((GIBaseInfo *)info);
+ is_abstract = g_object_info_get_abstract (info);
type_name = g_registered_type_info_get_type_name ((GIRegisteredTypeInfo*)info);
type_init = g_registered_type_info_get_type_init ((GIRegisteredTypeInfo*)info);
g_base_info_unref ((GIBaseInfo *)pnode);
}
+ if (is_abstract)
+ xml_printf (file, " abstract=\"1\"");
+
xml_printf (file, " glib:type-name=\"%s\" glib:get-type=\"%s\"", type_name, type_init);
if (deprecated)