From 84230e606e8de3f7c01aa9006c7f14caf25c5c49 Mon Sep 17 00:00:00 2001 From: Brian Potchik Date: Thu, 15 Oct 2020 17:51:31 -0400 Subject: Cleanup load options when choosing to not open specific BinaryView types during open with options. --- binaryview.cpp | 2 +- python/binaryview.py | 4 +++- suite/api_test.py | 3 +++ 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 BinaryView::GetLoadSettings(const string& typeName) void BinaryView::SetLoadSettings(const string& typeName, Ref 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): -- cgit v1.3.1