summaryrefslogtreecommitdiff
path: root/girepository/girmodule.h
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@src.gnome.org>2008-11-12 17:17:01 +0000
committerOwen Taylor <otaylor@src.gnome.org>2008-11-12 17:17:01 +0000
commit09423f25cd99f0999ff3e0b710d34461a5cfa54a (patch)
tree5559043ee3c55001728706979127a44d1a228a43 /girepository/girmodule.h
parent755ec2cc858997dd87e41cc5b8114d136d2434f6 (diff)
downloadgobject-introspection-09423f25cd99f0999ff3e0b710d34461a5cfa54a.tar.gz
Keep aliases and disguised_structures local to each module (#560419)
When parsing, keep keep a separate hash tables of aliases and 'disguised' flags for each module, and store that on the module. After parsing an include merge the aliases/disguised flags to the including module. Remove 'prefix_aliases' flag and always prefix aliases/disguised structure types when parsing; this simplifies the code considerably. svn path=/trunk/; revision=904
Diffstat (limited to 'girepository/girmodule.h')
-rw-r--r--girepository/girmodule.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/girepository/girmodule.h b/girepository/girmodule.h
index 5008c4e9..c658e179 100644
--- a/girepository/girmodule.h
+++ b/girepository/girmodule.h
@@ -36,7 +36,16 @@ struct _GIrModule
gchar *shared_library;
GList *dependencies;
GList *entries;
+
+ /* All modules that are included directly or indirectly */
GList *include_modules;
+
+ /* Aliases defined in the module or in included modules */
+ GHashTable *aliases;
+
+ /* Structures with the 'disguised' flag (typedef struct _X *X)
+ * in the module or in included modules */
+ GHashTable *disguised_structures;
};
GIrModule *g_ir_module_new (const gchar *name,
@@ -44,6 +53,9 @@ GIrModule *g_ir_module_new (const gchar *name,
const gchar *module_filename);
void g_ir_module_free (GIrModule *module);
+void g_ir_module_add_include_module (GIrModule *module,
+ GIrModule *include_module);
+
GTypelib * g_ir_module_build_typelib (GIrModule *module,
GList *modules);