summaryrefslogtreecommitdiff
path: root/giscanner/gdumpparser.py
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2011-06-03 17:32:15 -0400
committerColin Walters <walters@verbum.org>2011-06-03 17:33:16 -0400
commit6e1158f62b0b2f50603d018ebeff6d2c75dd5f98 (patch)
tree8b19f0cdeb2f56018c58faf30ef92500938f05e1 /giscanner/gdumpparser.py
parent113656896ae85391d0ee52261451361363439474 (diff)
downloadgobject-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.py11
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']