diff options
author | Johan Dahlin <jdahlin@async.com.br> | 2009-01-12 23:24:01 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2009-01-12 23:24:01 +0000 |
commit | 9256e916164ec557ed66f92a0d6d95bb286cdf8b (patch) | |
tree | e481541d55ca9eafb63684f2ee41d48096b8eac5 /giscanner/transformer.py | |
parent | e81c4681cc88a00fcd841c5a68d860d3714b55d7 (diff) | |
download | gobject-introspection-9256e916164ec557ed66f92a0d6d95bb286cdf8b.tar.gz |
Bug 563591 – Flags not recognized when there is no introspection data
2009-01-12 Johan Dahlin <jdahlin@async.com.br>
Bug 563591 – Flags not recognized when there is no introspection data
* giscanner/ast.py:
* giscanner/girwriter.py:
* giscanner/giscannermodule.c (type_get_is_bitfield):
* giscanner/glibast.py:
* giscanner/glibtransformer.py:
* giscanner/scannerparser.y:
* giscanner/sourcescanner.c (gi_source_type_copy):
* giscanner/sourcescanner.h:
* giscanner/sourcescanner.py:
* giscanner/transformer.py:
* tests/scanner/foo-1.0-expected.gir:
* tests/scanner/foo-1.0-expected.tgir:
* tests/scanner/foo.h:
Large parts of this patch was done by Jürg Billeter.
svn path=/trunk/; revision=1025
Diffstat (limited to 'giscanner/transformer.py')
-rw-r--r-- | giscanner/transformer.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/giscanner/transformer.py b/giscanner/transformer.py index 8e335ff6..b7e8c5df 100644 --- a/giscanner/transformer.py +++ b/giscanner/transformer.py @@ -20,7 +20,7 @@ import os -from .ast import (Callback, Enum, Function, Namespace, Member, +from .ast import (Bitfield, Callback, Enum, Function, Namespace, Member, Parameter, Return, Struct, Field, Type, Array, Alias, Interface, Class, Node, Union, Varargs, Constant, type_name_from_ctype, @@ -210,9 +210,13 @@ class Transformer(object): child.ident)) enum_name = self.remove_prefix(symbol.ident) - enum = Enum(enum_name, symbol.ident, members) - self._names.type_names[symbol.ident] = (None, enum) - return enum + if symbol.base_type.is_bitfield: + klass = Bitfield + else: + klass = Enum + node = klass(enum_name, symbol.ident, members) + self._names.type_names[symbol.ident] = (None, node) + return node def _create_object(self, symbol): return Member(symbol.ident, symbol.base_type.name, |