summaryrefslogtreecommitdiff
path: root/girepository/girmodule.h
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2010-07-26 16:26:46 -0400
committerColin Walters <walters@verbum.org>2010-08-17 13:14:51 -0400
commit8942500c99de223eff6f91677a5dff206e09b3a7 (patch)
tree67b89e622e14874635a7fa9268ac12e16d363f31 /girepository/girmodule.h
parent616a918019f730184bc7aee0f4570a67db8850b9 (diff)
downloadgobject-introspection-8942500c99de223eff6f91677a5dff206e09b3a7.tar.gz
[gircompiler] Clean up parsing
We never actually include multiple modules in the compiler, so just nuke that. Also rather than passing around GIrModule consistently pass around a GIrTypelibBuild structure which has various things. This lets us maintain a stack there which we can walk for better error messages. Also, fix up the node lookup in giroffsets.c; previously it didn't really handle includes correctly. We really need to switch to always using Foo.Bar (i.e. GIName) names internally...
Diffstat (limited to 'girepository/girmodule.h')
-rw-r--r--girepository/girmodule.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/girepository/girmodule.h b/girepository/girmodule.h
index bd3fbf29..e8d7ad1e 100644
--- a/girepository/girmodule.h
+++ b/girepository/girmodule.h
@@ -26,9 +26,19 @@
G_BEGIN_DECLS
-
+typedef struct _GIrTypelibBuild GIrTypelibBuild;
typedef struct _GIrModule GIrModule;
+struct _GIrTypelibBuild {
+ GIrModule *module;
+ GHashTable *strings;
+ GHashTable *types;
+ GList *nodes_with_attributes;
+ guint32 n_attributes;
+ guchar *data;
+ GList *stack;
+};
+
struct _GIrModule
{
gchar *name;
@@ -58,10 +68,9 @@ 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);
+GTypelib * g_ir_module_build_typelib (GIrModule *module);
-void g_ir_module_fatal (GIrModule *module, guint line, const char *msg, ...) G_GNUC_PRINTF (3, 4) G_GNUC_NORETURN;
+void g_ir_module_fatal (GIrTypelibBuild *build, guint line, const char *msg, ...) G_GNUC_PRINTF (3, 4) G_GNUC_NORETURN;
void _g_irnode_init_stats (void);
void _g_irnode_dump_stats (void);