summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2019-08-02 22:05:36 -0400
committerBrian Potchik <brian@vector35.com>2019-08-02 22:05:36 -0400
commit93bb3e8cf9ef789b5fdbf321815ed6108291786c (patch)
tree85e86a6bb4e0728841e6e9d2fa08d0bbc3243e68 /examples
parent26d7d2f1d5daf50583b18fe59566f5d4436f79f2 (diff)
Refactor settings system to be reference counted.
Diffstat (limited to 'examples')
-rw-r--r--examples/triage/files.cpp17
-rw-r--r--examples/triage/triage.cpp11
-rw-r--r--examples/triage/view.cpp11
3 files changed, 21 insertions, 18 deletions
diff --git a/examples/triage/files.cpp b/examples/triage/files.cpp
index 7c0f7b9c..e2f86e0f 100644
--- a/examples/triage/files.cpp
+++ b/examples/triage/files.cpp
@@ -63,6 +63,7 @@ void TriageFilePicker::openSelectedFiles()
{
std::vector<QString> failedToOpen;
std::set<QString> files;
+ SettingsRef settings = BinaryNinja::Settings::Instance();
for (auto& index: m_tree->selectionModel()->selectedIndexes())
if (m_model->fileInfo(index).isFile())
@@ -81,24 +82,24 @@ void TriageFilePicker::openSelectedFiles()
for (auto data: f->getAllDataViews())
{
- BinaryNinja::Settings().Set("analysis.mode", BinaryNinja::Settings().Get<std::string>("triage.analysisMode"), data);
- BinaryNinja::Settings().Set("triage.preferSummaryView", true, data);
+ settings->Set("analysis.mode", settings->Get<std::string>("triage.analysisMode"), data);
+ settings->Set("triage.preferSummaryView", true, data);
if (data->GetTypeName() != "Raw")
{
- std::string linearSweepMode = BinaryNinja::Settings().Get<std::string>("triage.linearSweep");
+ std::string linearSweepMode = settings->Get<std::string>("triage.linearSweep");
if (linearSweepMode == "none")
{
- BinaryNinja::Settings().Set("analysis.linearSweep.autorun", false, data);
+ settings->Set("analysis.linearSweep.autorun", false, data);
}
else if (linearSweepMode == "partial")
{
- BinaryNinja::Settings().Set("analysis.linearSweep.autorun", true, data);
- BinaryNinja::Settings().Set("analysis.linearSweep.controlFlowGraph", false, data);
+ settings->Set("analysis.linearSweep.autorun", true, data);
+ settings->Set("analysis.linearSweep.controlFlowGraph", false, data);
}
else if (linearSweepMode == "full")
{
- BinaryNinja::Settings().Set("analysis.linearSweep.autorun", true, data);
- BinaryNinja::Settings().Set("analysis.linearSweep.controlFlowGraph", true, data);
+ settings->Set("analysis.linearSweep.autorun", true, data);
+ settings->Set("analysis.linearSweep.controlFlowGraph", true, data);
}
}
}
diff --git a/examples/triage/triage.cpp b/examples/triage/triage.cpp
index 37431d65..ae48ead2 100644
--- a/examples/triage/triage.cpp
+++ b/examples/triage/triage.cpp
@@ -12,8 +12,9 @@ extern "C"
BINARYNINJAPLUGIN bool UIPluginInit()
#endif
{
- BinaryNinja::Settings().RegisterGroup("triage", "Triage");
- BinaryNinja::Settings().RegisterSetting("triage.preferSummaryView",
+ SettingsRef settings = BinaryNinja::Settings::Instance();
+ settings->RegisterGroup("triage", "Triage");
+ settings->RegisterSetting("triage.preferSummaryView",
R"({
"title" : "Always Prefer Triage Summary View",
"type" : "boolean",
@@ -21,7 +22,7 @@ extern "C"
"description" : "Always prefer opening binaries in Triage Summary view, even when performing full analysis."
})");
- BinaryNinja::Settings().RegisterSetting("triage.preferSummaryViewForRaw",
+ settings->RegisterSetting("triage.preferSummaryViewForRaw",
R"({
"title" : "Prefer Triage Summary View for Raw Files",
"type" : "boolean",
@@ -31,7 +32,7 @@ extern "C"
ViewType::registerViewType(new TriageViewType());
- BinaryNinja::Settings().RegisterSetting("triage.analysisMode",
+ settings->RegisterSetting("triage.analysisMode",
R"({
"title" : "Triage Analysis Mode",
"type" : "string",
@@ -44,7 +45,7 @@ extern "C"
"Perform full analysis of the binary." ]
})");
- BinaryNinja::Settings().RegisterSetting("triage.linearSweep",
+ settings->RegisterSetting("triage.linearSweep",
R"({
"title" : "Triage Linear Sweep Mode",
"type" : "string",
diff --git a/examples/triage/view.cpp b/examples/triage/view.cpp
index e4077521..ddd1d4ff 100644
--- a/examples/triage/view.cpp
+++ b/examples/triage/view.cpp
@@ -99,7 +99,7 @@ TriageView::TriageView(QWidget* parent, BinaryViewRef data): QScrollArea(parent)
setWidgetResizable(true);
setWidget(container);
- if (m_fullAnalysisButton && (BinaryNinja::Settings().Get<std::string>("analysis.mode", data) == "full"))
+ if (m_fullAnalysisButton && (BinaryNinja::Settings::Instance()->Get<std::string>("analysis.mode", data) == "full"))
m_fullAnalysisButton->hide();
}
@@ -153,7 +153,7 @@ bool TriageView::navigate(uint64_t addr)
void TriageView::startFullAnalysis()
{
- BinaryNinja::Settings().Set("analysis.mode", "full", m_data);
+ BinaryNinja::Settings::Instance()->Set("analysis.mode", "full", m_data);
for (auto& f: m_data->GetAnalysisFunctionList())
{
if (f->IsAnalysisSkipped())
@@ -220,9 +220,10 @@ TriageViewType::TriageViewType(): ViewType("Triage", "Triage Summary")
int TriageViewType::getPriority(BinaryViewRef data, const QString&)
{
- bool full = BinaryNinja::Settings().Get<std::string>("analysis.mode", data) == "full";
- bool alwaysPrefer = BinaryNinja::Settings().Get<bool>("triage.preferSummaryView", data);
- bool preferForRaw = BinaryNinja::Settings().Get<bool>("triage.preferSummaryViewForRaw", data);
+ BinaryNinja::Ref<BinaryNinja::Settings> settings = BinaryNinja::Settings::Instance();
+ bool full = settings->Get<std::string>("analysis.mode", data) == "full";
+ bool alwaysPrefer = settings->Get<bool>("triage.preferSummaryView", data);
+ bool preferForRaw = settings->Get<bool>("triage.preferSummaryViewForRaw", data);
if (data->IsExecutable() && (alwaysPrefer || !full))
return 100;
if (data->GetLength() > 0)