summaryrefslogtreecommitdiff
path: root/python/settings.py
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2021-06-07 09:59:54 -0400
committerPeter LaFosse <peter@vector35.com>2021-09-05 10:08:09 -0400
commit61b4bb24e06aa955484293d35fa926c07887544b (patch)
tree29c6b7fecdac6270681260637439926ec07a259e /python/settings.py
parent75f2463a46cc666e87120f3a30332fa80020b62e (diff)
Add type hints to basicblock.py, lowlevelil.py, architecture.py
Diffstat (limited to 'python/settings.py')
-rw-r--r--python/settings.py35
1 files changed, 19 insertions, 16 deletions
diff --git a/python/settings.py b/python/settings.py
index 91f6259c..ac968d3e 100644
--- a/python/settings.py
+++ b/python/settings.py
@@ -21,12 +21,8 @@
import ctypes
# Binary Ninja components
-from binaryninja import _binaryninjacore as core
-
-# 2-3 compatibility
-from binaryninja import range
-from binaryninja import pyNativeStr
-from binaryninja.enums import SettingsScope
+from . import _binaryninjacore as core
+from .enums import SettingsScope
class Settings(object):
@@ -122,23 +118,26 @@ class Settings(object):
True
"""
- handle = core.BNCreateSettings("default")
+ default_handle = core.BNCreateSettings("default")
- def __init__(self, instance_id = "default", handle = None):
+ def __init__(self, instance_id:str="default", handle=None):
if handle is None:
if instance_id is None or instance_id == "":
instance_id = "default"
self._instance_id = instance_id
if instance_id == "default":
- self.handle = Settings.handle
+ assert Settings.default_handle is not None
+ _handle = Settings.default_handle
else:
- self.handle = core.BNCreateSettings(instance_id)
+ _handle = core.BNCreateSettings(instance_id)
else:
instance_id = core.BNGetUniqueIdentifierString()
- self.handle = handle
+ _handle = handle
+ assert _handle is not None
+ self.handle = _handle
def __del__(self):
- if self.handle is not Settings.handle and self.handle is not None:
+ if self.handle is not Settings.default_handle and self.handle is not None:
core.BNFreeSettings(self.handle)
def __eq__(self, other):
@@ -237,18 +236,20 @@ class Settings(object):
"""
length = ctypes.c_ulonglong()
result = core.BNSettingsKeysList(self.handle, ctypes.byref(length))
+ assert result is not None, "core.BNSettingsKeysList returned None"
out_list = []
for i in range(length.value):
- out_list.append(pyNativeStr(result[i]))
+ out_list.append(result[i].decode('utf8'))
core.BNFreeStringList(result, length)
return out_list
def query_property_string_list(self, key, property_name):
length = ctypes.c_ulonglong()
result = core.BNSettingsQueryPropertyStringList(self.handle, key, property_name, ctypes.byref(length))
+ assert result is not None, "core.BNSettingsQueryPropertyStringList returned None"
out_list = []
for i in range(length.value):
- out_list.append(pyNativeStr(result[i]))
+ out_list.append(result[i].decode('utf8'))
core.BNFreeStringList(result, length)
return out_list
@@ -306,9 +307,10 @@ class Settings(object):
view = view.handle
length = ctypes.c_ulonglong()
result = core.BNSettingsGetStringList(self.handle, key, view, None, ctypes.byref(length))
+ assert result is not None, "core.BNSettingsGetStringList returned None"
out_list = []
for i in range(length.value):
- out_list.append(pyNativeStr(result[i]))
+ out_list.append(result[i].decode('utf8'))
core.BNFreeStringList(result, length)
return out_list
@@ -351,9 +353,10 @@ class Settings(object):
c_scope = core.SettingsScopeEnum(scope)
length = ctypes.c_ulonglong()
result = core.BNSettingsGetStringList(self.handle, key, view, ctypes.byref(c_scope), ctypes.byref(length))
+ assert result is not None, "core.BNSettingsGetStringList returned None"
out_list = []
for i in range(length.value):
- out_list.append(pyNativeStr(result[i]))
+ out_list.append(result[i].decode('utf8'))
core.BNFreeStringList(result, length)
return (out_list, SettingsScope(c_scope.value))