diff options
author | Colin Walters <walters@verbum.org> | 2010-07-26 16:26:46 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2010-08-17 13:14:51 -0400 |
commit | 8942500c99de223eff6f91677a5dff206e09b3a7 (patch) | |
tree | 67b89e622e14874635a7fa9268ac12e16d363f31 /girepository/girmodule.h | |
parent | 616a918019f730184bc7aee0f4570a67db8850b9 (diff) | |
download | gobject-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.h | 17 |
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); |