summaryrefslogtreecommitdiff
path: root/python/binaryview.py
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2020-08-02 12:19:50 -0400
committerBrian Potchik <brian@vector35.com>2020-08-02 12:19:50 -0400
commit3086a0550aee083a1ed2c75d09faea9af4a1d480 (patch)
tree8f941a99921a241da8dc71e656bb4d875a208687 /python/binaryview.py
parent9de5705fd4cfec390cc8b98a37e3e374adf32390 (diff)
Fix BNDB loading with get_view_of_file_with_options.
Diffstat (limited to 'python/binaryview.py')
-rw-r--r--python/binaryview.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/python/binaryview.py b/python/binaryview.py
index 7d5fea37..da51062d 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -845,9 +845,15 @@ class BinaryViewType(with_metaclass(_BinaryViewTypeMetaclass, object)):
default_settings = settings.Settings(bvt.name + "_settings")
default_settings.deserialize_schema(settings.Settings().serialize_schema())
default_settings.set_resource_id(bvt.name)
- load_settings = bvt.get_load_settings_for_data(view)
+
+ load_settings = None
+ if isDatabase:
+ load_settings = view.get_load_settings(bvt.name)
+ if load_settings is None:
+ load_settings = bvt.get_load_settings_for_data(view)
load_settings.set_resource_id(bvt.name)
view.set_load_settings(bvt.name, load_settings)
+
for key, value in options.items():
if load_settings.contains(key):
if not load_settings.set_json(key, json.dumps(value), view):
@@ -858,7 +864,11 @@ class BinaryViewType(with_metaclass(_BinaryViewTypeMetaclass, object)):
else:
raise NotImplementedError("Setting: {} not available!".format(key))
- bv = bvt.create(view)
+ if isDatabase:
+ view = view.file.open_existing_database(filename, progress_func)
+ bv = view.get_view_of_type(bvt.name)
+ else:
+ bv = bvt.create(view)
if bv is not None and update_analysis:
bv.update_analysis_and_wait()