summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--tests/scanner/drawable-1.0-expected.tgir2
-rw-r--r--tests/scanner/drawable-injected-1.0-expected.tgir2
-rw-r--r--tests/scanner/foo-1.0-expected.tgir2
-rw-r--r--tools/generate.c5
5 files changed, 18 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 945036e3..57c95f10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
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:
diff --git a/tests/scanner/drawable-1.0-expected.tgir b/tests/scanner/drawable-1.0-expected.tgir
index 6fa1843a..1eef9886 100644
--- a/tests/scanner/drawable-1.0-expected.tgir
+++ b/tests/scanner/drawable-1.0-expected.tgir
@@ -7,7 +7,7 @@
<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>
diff --git a/tests/scanner/drawable-injected-1.0-expected.tgir b/tests/scanner/drawable-injected-1.0-expected.tgir
index be88c572..fba3d099 100644
--- a/tests/scanner/drawable-injected-1.0-expected.tgir
+++ b/tests/scanner/drawable-injected-1.0-expected.tgir
@@ -7,7 +7,7 @@
<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>
diff --git a/tests/scanner/foo-1.0-expected.tgir b/tests/scanner/foo-1.0-expected.tgir
index e1bc8f52..5bc3d67e 100644
--- a/tests/scanner/foo-1.0-expected.tgir
+++ b/tests/scanner/foo-1.0-expected.tgir
@@ -115,7 +115,7 @@
<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"/>
diff --git a/tools/generate.c b/tools/generate.c
index b6e6fc86..8a3b1d86 100644
--- a/tools/generate.c
+++ b/tools/generate.c
@@ -878,11 +878,13 @@ write_object_info (const gchar *namespace,
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);
@@ -896,6 +898,9 @@ write_object_info (const gchar *namespace,
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)