diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2021-03-23 15:35:55 +0400 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gmail.com> | 2021-06-20 21:28:02 +0000 |
commit | 01821d5e4986a36d7a8de9278540205e54144e1d (patch) | |
tree | 1eebd143dfc3c1568587629ec54da1468b5ec2e6 /giscanner/gdumpparser.py | |
parent | d5cdbba5fa6d25ea82ecb39b7ba1839d7fed020a (diff) | |
download | gobject-introspection-01821d5e4986a36d7a8de9278540205e54144e1d.tar.gz |
scanner: fix enum member c:identifier
Don't rely on runtime name, but on C header parsed symbol.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Diffstat (limited to 'giscanner/gdumpparser.py')
-rw-r--r-- | giscanner/gdumpparser.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py index 3d9720d0..ada1503d 100644 --- a/giscanner/gdumpparser.py +++ b/giscanner/gdumpparser.py @@ -262,10 +262,12 @@ blob containing data gleaned from GObject's primitive introspection.""" # values as a 32-bit signed integer, even if they were unsigned # in the source code. previous_values = {} + previous_symbols = {} previous = self._namespace.get(enum_name) if isinstance(previous, (ast.Enum, ast.Bitfield)): for member in previous.members: previous_values[member.name] = member.value + previous_symbols[member.name] = member.symbol members = [] for member in xmlnode.findall('member'): @@ -275,12 +277,14 @@ blob containing data gleaned from GObject's primitive introspection.""" if name in previous_values: value = previous_values[name] + symbol = previous_symbols[name] else: value = member.attrib['value'] + symbol = member.attrib['name'] members.append(ast.Member(name, value, - member.attrib['name'], + symbol, member.attrib['nick'])) if xmlnode.tag == 'flags': |