[gobject-introspection] scanner: fix enum member c:identifier
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] scanner: fix enum member c:identifier
- Date: Thu, 24 Jun 2021 13:36:08 +0000 (UTC)
commit 01821d5e4986a36d7a8de9278540205e54144e1d
Author: Marc-André Lureau <marcandre lureau redhat com>
Date: Tue Mar 23 15:35:55 2021 +0400
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>
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.</doc>
c:type="RegressTestFlags">
<member name="flag1"
value="1"
- c:identifier="TEST_FLAG1"
+ c:identifier="REGRESS_TEST_FLAG1"
glib:nick="flag1">
</member>
<member name="flag2"
value="2"
- c:identifier="TEST_FLAG2"
+ c:identifier="REGRESS_TEST_FLAG2"
glib:nick="flag2">
</member>
<member name="flag3"
value="4"
- c:identifier="TEST_FLAG3"
+ c:identifier="REGRESS_TEST_FLAG3"
glib:nick="flag3">
</member>
</bitfield>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]