summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2020-10-15 17:51:31 -0400
committerBrian Potchik <brian@vector35.com>2020-10-15 17:51:31 -0400
commit84230e606e8de3f7c01aa9006c7f14caf25c5c49 (patch)
tree5107b3a0975b8524e14a07aa2a575f9a86d90df2
parentcbe3ded641a0ce4b50ae447a4426b71f3e0f0119 (diff)
Cleanup load options when choosing to not open specific BinaryView types during open with options.
-rw-r--r--binaryview.cpp2
-rw-r--r--python/binaryview.py4
-rw-r--r--suite/api_test.py3
3 files changed, 7 insertions, 2 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index 8e3f115a..d355246d 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -3048,7 +3048,7 @@ Ref<Settings> BinaryView::GetLoadSettings(const string& typeName)
void BinaryView::SetLoadSettings(const string& typeName, Ref<Settings> settings)
{
- BNBinaryViewSetLoadSettings(m_object, typeName.c_str(), settings->GetObject());
+ BNBinaryViewSetLoadSettings(m_object, typeName.c_str(), settings ? settings->GetObject() : nullptr);
}
diff --git a/python/binaryview.py b/python/binaryview.py
index 7e893ab2..b7f5b745 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -5481,7 +5481,9 @@ class BinaryView(object):
:param Settings settings: the load settings
:rtype: None
"""
- core.BNBinaryViewSetLoadSettings(self.handle, type_name, settings.handle)
+ if settings is not None:
+ settings = settings.handle
+ core.BNBinaryViewSetLoadSettings(self.handle, type_name, settings)
def __setattr__(self, name, value):
try:
diff --git a/suite/api_test.py b/suite/api_test.py
index 51830d21..107b9981 100644
--- a/suite/api_test.py
+++ b/suite/api_test.py
@@ -172,6 +172,9 @@ class SettingsAPI(unittest.TestCase):
assert mapped_view.view_type == bvt_name, "test_load_settings failed"
assert mapped_view.segments[0].start == 0x500000, "test_load_settings failed"
assert len(mapped_view) == 4, "test_load_settings failed"
+ assert raw_view.get_load_settings(bvt_name) == load_settings
+ raw_view.set_load_settings(bvt_name, None)
+ assert raw_view.get_load_settings(bvt_name) is None
class MetaddataAPI(unittest.TestCase):