diff options
author | Pavel Holejsovsky <pholejs@src.gnome.org> | 2011-09-12 19:54:39 +0200 |
---|---|---|
committer | Pavel Holejsovsky <pholejs@src.gnome.org> | 2011-09-12 20:16:32 +0200 |
commit | 9e903476ea20e0bc3593816b932eae6b0afd0f2e (patch) | |
tree | 3a0443ad5d8ac0e1441c0a0dde13576018b0ae96 /girepository | |
parent | a3f849e8c6548ec17bd37cb406688dfe21ca961c (diff) | |
download | gobject-introspection-9e903476ea20e0bc3593816b932eae6b0afd0f2e.tar.gz |
Fix g_type_info_is_pointer() for overriden types of arguments.
Algorithm which detects whether argument type is pointer checks for
trailing '*' characters in c:type .gir elements. This failed if ctype
is either 'gpointer' or 'gconstpointer'. Add specific check for
gpointer/gconstpointer types when deducing pointerness of the type.
https://bugzilla.gnome.org/show_bug.cgi?id=658848
Diffstat (limited to 'girepository')
-rw-r--r-- | girepository/girparser.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c index 6984e826..0a4a65d8 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -1947,6 +1947,10 @@ start_type (GMarkupParseContext *context, const char *cp = ctype + strlen(ctype) - 1; while (cp > ctype && *cp-- == '*') pointer_depth++; + + if (g_str_has_prefix (ctype, "gpointer") + || g_str_has_prefix (ctype, "gconstpointer")) + pointer_depth++; } if (ctx->current_typed->type == G_IR_NODE_PARAM && |