Bug 551738 - Associate classes with their structs

Inside glibtransformer, we now look at structures ending in "Class" and
see if they have an associated GlibObject (i.e. a structure of the same
name without the "Class" suffix).  If found, pair them up.

The .gir file for <class> gains an attribute denoting its associated
class struct.  Any <record> many now have a glib:is-class-struct-for
annotation which tells which (if any) <class> for which it defines the
layout.

In the .typelib, we record the association between the class and
its structure.  Generic structures however just have a boolean
saying whether they're a class struct.  (Going from a generic class
struct to its class should not be necessary).

Finally, we expose GIRepository APIs to access both bits of information
from the .typelib.

svn path=/trunk/; revision=1088
This commit is contained in:
Colin Walters
2009-02-06 18:37:13 +00:00
parent 1b22fa426f
commit ff6b28c17b
8 changed files with 100 additions and 11 deletions

View File

@@ -223,7 +223,7 @@ g_ir_module_build_typelib (GIrModule *module,
header->signature_blob_size = 8;
header->enum_blob_size = 20;
header->struct_blob_size = 24;
header->object_blob_size = 32;
header->object_blob_size = sizeof(ObjectBlob);
header->interface_blob_size = 28;
header->union_blob_size = 32;