summaryrefslogtreecommitdiff
path: root/giscanner
diff options
context:
space:
mode:
authorJohan Dahlin <johan@gnome.org>2008-08-16 22:26:55 +0000
committerJohan Dahlin <johan@src.gnome.org>2008-08-16 22:26:55 +0000
commit20252d7c3013461387370de251f9f84b7ceed1b8 (patch)
treef83be2d13f7a7fc1aaaf07984d2edae81c99352d /giscanner
parent83450e1566a5f5ab161fa70854840963583086c9 (diff)
downloadgobject-introspection-20252d7c3013461387370de251f9f84b7ceed1b8.tar.gz
Remove resolve_possible_typedefs, it was unused. Allow multiple enum
2008-08-17 Johan Dahlin <johan@gnome.org> * girepository/gtypelib.c (validate_enum_blob): * giscanner/glibtransformer.py: * giscanner/transformer.py: Remove resolve_possible_typedefs, it was unused. Allow multiple enum values of the sample value in an enum, since it's actually pretty common. Register enums so they can be resolved too. svn path=/trunk/; revision=389
Diffstat (limited to 'giscanner')
-rw-r--r--giscanner/glibtransformer.py4
-rw-r--r--giscanner/transformer.py8
2 files changed, 5 insertions, 7 deletions
diff --git a/giscanner/glibtransformer.py b/giscanner/glibtransformer.py
index 317754bd..82b19581 100644
--- a/giscanner/glibtransformer.py
+++ b/giscanner/glibtransformer.py
@@ -182,7 +182,8 @@ class GLibTransformer(object):
def _name_is_internal_gtype(self, giname):
try:
node = self._internal_types[giname]
- return isinstance(node, (GLibObject, GLibInterface, GLibBoxed))
+ return isinstance(node, (GLibObject, GLibInterface, GLibBoxed,
+ GLibEnum, GLibFlags))
except KeyError, e:
return False
@@ -399,7 +400,6 @@ class GLibTransformer(object):
def _resolve_param_type(self, ptype):
ptype.name = ptype.name.replace('*', '')
type_name = ptype.name
- type_name = self._transformer.resolve_possible_typedef(type_name)
possible_node = self._internal_types.get(type_name)
if possible_node:
ptype.name = possible_node.name
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index 15039b6f..72c1daac 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -48,7 +48,6 @@ class Transformer(object):
self._ctype_names = {} # Maps from CType -> (namespace, node)
self._typedefs_ns = {}
self._strip_prefix = ''
- self._typedefs = {}
def get_type_names(self):
return self._type_names
@@ -59,9 +58,6 @@ class Transformer(object):
def set_strip_prefix(self, strip_prefix):
self._strip_prefix = strip_prefix
- def resolve_possible_typedef(self, tname):
- return self._typedefs.get(tname, tname)
-
def parse(self):
nodes = []
for symbol in self.generator.get_symbols():
@@ -161,7 +157,9 @@ class Transformer(object):
enum_name = self.strip_namespace_object(symbol.ident)
enum_name = symbol.ident[-len(enum_name):]
- return Enum(enum_name, symbol.ident, members)
+ enum = Enum(enum_name, symbol.ident, members)
+ self._type_names[symbol.ident] = (None, enum)
+ return enum
def _create_object(self, symbol):
return Member(symbol.ident, symbol.base_type.name,