summaryrefslogtreecommitdiff
path: root/python/demangle.py
diff options
context:
space:
mode:
authorKyleMiles <krm504@nyu.edu>2023-05-31 17:16:41 -0400
committerKyleMiles <krm504@nyu.edu>2023-05-31 17:16:41 -0400
commitb46e2e19c3a840e8e110f0b768efc73add56c33f (patch)
tree5a57db166c77be0ed9403d98d2c2edb3451974af /python/demangle.py
parent348815b2ee562110063c512634d3543bd3ad80b6 (diff)
Simplify template simplifier API; remove cursed RustString stuff
Diffstat (limited to 'python/demangle.py')
-rw-r--r--python/demangle.py24
1 files changed, 10 insertions, 14 deletions
diff --git a/python/demangle.py b/python/demangle.py
index ce57b601..d3d01c97 100644
--- a/python/demangle.py
+++ b/python/demangle.py
@@ -171,23 +171,19 @@ def simplify_name_to_qualified_name(input_name, simplify=True):
'std::wstring'
>>>
"""
- result = None
+ name = None
if isinstance(input_name, str):
- result = core.BNRustSimplifyStrToFQN(input_name, simplify)
- assert result is not None, "core.BNRustSimplifyStrToFQN returned None"
+ name = core.BNRustSimplifyStrToFQN(input_name, simplify)
+ assert name is not None, "core.BNRustSimplifyStrToFQN returned None"
elif isinstance(input_name, types.QualifiedName):
- result = core.BNRustSimplifyStrToFQN(str(input_name), True)
- assert result is not None, "core.BNRustSimplifyStrToFQN returned None"
+ name = core.BNRustSimplifyStrToFQN(str(input_name), True)
+ assert name is not None, "core.BNRustSimplifyStrToFQN returned None"
else:
raise TypeError("Parameter must be of type `str` or `types.QualifiedName`")
- native_result = []
- for name in result:
- if name == b'':
- break
- native_result.append(name.decode("utf-8"))
- name_count = len(native_result)
+ result = types.QualifiedName._from_core_struct(name)
+ core.BNFreeQualifiedName(name)
+ if len(result) == 0:
+ return None
+ return result
- native_result = types.QualifiedName(native_result)
- core.BNRustFreeStringArray(result, name_count + 1)
- return native_result