From 01821d5e4986a36d7a8de9278540205e54144e1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Tue, 23 Mar 2021 15:35:55 +0400 Subject: scanner: fix enum member c:identifier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't rely on runtime name, but on C header parsed symbol. Signed-off-by: Marc-André Lureau --- giscanner/gdumpparser.py | 6 +++++- tests/scanner/Regress-1.0-expected.gir | 6 +++--- 2 files changed, 8 insertions(+), 4 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': diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index c5044d99..302800cc 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -3446,17 +3446,17 @@ use it should be. c:type="RegressTestFlags"> -- cgit v1.2.1