From b46e2e19c3a840e8e110f0b768efc73add56c33f Mon Sep 17 00:00:00 2001 From: KyleMiles Date: Wed, 31 May 2023 17:16:41 -0400 Subject: Simplify template simplifier API; remove cursed RustString stuff --- python/demangle.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'python/demangle.py') 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 -- cgit v1.3.1