diff options
| author | KyleMiles <krm504@nyu.edu> | 2023-05-31 17:16:41 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2023-05-31 17:16:41 -0400 |
| commit | b46e2e19c3a840e8e110f0b768efc73add56c33f (patch) | |
| tree | 5a57db166c77be0ed9403d98d2c2edb3451974af /python/demangle.py | |
| parent | 348815b2ee562110063c512634d3543bd3ad80b6 (diff) | |
Simplify template simplifier API; remove cursed RustString stuff
Diffstat (limited to 'python/demangle.py')
| -rw-r--r-- | python/demangle.py | 24 |
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 |
