diff options
author | Colin Walters <walters@verbum.org> | 2011-06-03 17:32:15 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2011-06-03 17:33:16 -0400 |
commit | 6e1158f62b0b2f50603d018ebeff6d2c75dd5f98 (patch) | |
tree | 8b19f0cdeb2f56018c58faf30ef92500938f05e1 /giscanner/gdumpparser.py | |
parent | 113656896ae85391d0ee52261451361363439474 (diff) | |
download | gobject-introspection-6e1158f62b0b2f50603d018ebeff6d2c75dd5f98.tar.gz |
scanner: Support _get_gtype() as a GType creation suffix
Based on a patch by Giovanni Campagna <gcampagna@src.gnome.org>
https://bugzilla.gnome.org/show_bug.cgi?id=646635
Diffstat (limited to 'giscanner/gdumpparser.py')
-rw-r--r-- | giscanner/gdumpparser.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py index eb43a5f8..7e8f31f5 100644 --- a/giscanner/gdumpparser.py +++ b/giscanner/gdumpparser.py @@ -205,7 +205,7 @@ blob containing data gleaned from GObject's primitive introspection.""" symbol = func.symbol if symbol.startswith('_'): return - elif symbol.endswith('_get_type'): + elif (symbol.endswith('_get_type') or symbol.endswith('_get_gtype')): self._initparse_get_type_function(func) def _initparse_get_type_function(self, func): @@ -306,14 +306,17 @@ blob containing data gleaned from GObject's primitive introspection.""" get_type = xmlnode.attrib['get-type'] (ns, name) = self._transformer.split_csymbol(get_type) assert ns is self._namespace - if name == 'get_type': + if name in ('get_type', '_get_gtype'): message.fatal("""The GObject name %r isn't compatibile with the configured identifier prefixes: %r The class would have no name. Most likely you want to specify a different --identifier-prefix.""" % (xmlnode.attrib['name'], self._namespace.identifier_prefixes)) - assert name.endswith('_get_type') - return (get_type, name[:-len('_get_type')]) + if name.endswith('_get_type'): + type_suffix = '_get_type' + else: + type_suffix = '_get_gtype' + return (get_type, name[:-len(type_suffix)]) def _introspect_object(self, xmlnode): type_name = xmlnode.attrib['name'] |