diff --git a/girnode.c b/girnode.c index 7961da37f..3d01ef17e 100644 --- a/girnode.c +++ b/girnode.c @@ -710,7 +710,9 @@ g_ir_node_get_full_size_internal (GIrNode *parent, GIrNode *node) size += ALIGN_VALUE (strlen (iface->parent) + 1, 4); size += ALIGN_VALUE (strlen (node->name) + 1, 4); size += ALIGN_VALUE (strlen (iface->gtype_name) + 1, 4); - size += ALIGN_VALUE (strlen (iface->gtype_init) + 1, 4); + if (iface->gtype_init) + size += ALIGN_VALUE (strlen (iface->gtype_init) + 1, 4); + size += ALIGN_VALUE ( + 1, 4); size += 2 * (n + (n % 2)); for (l = iface->members; l; l = l->next) diff --git a/girparser.c b/girparser.c index 2e875d7fa..209c2d4d0 100644 --- a/girparser.c +++ b/girparser.c @@ -1304,7 +1304,7 @@ start_class (GMarkupParseContext *context, MISSING_ATTRIBUTE (context, error, element_name, "name"); else if (typename == NULL) MISSING_ATTRIBUTE (context, error, element_name, "glib:type-name"); - else if (typeinit == NULL) + else if (typeinit == NULL && strcmp (typename, "GObject")) MISSING_ATTRIBUTE (context, error, element_name, "glib:get-type"); else {