diff options
| author | Brian Potchik <brian@vector35.com> | 2019-08-02 22:05:36 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2019-08-02 22:05:36 -0400 |
| commit | 93bb3e8cf9ef789b5fdbf321815ed6108291786c (patch) | |
| tree | 85e86a6bb4e0728841e6e9d2fa08d0bbc3243e68 /examples | |
| parent | 26d7d2f1d5daf50583b18fe59566f5d4436f79f2 (diff) | |
Refactor settings system to be reference counted.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/triage/files.cpp | 17 | ||||
| -rw-r--r-- | examples/triage/triage.cpp | 11 | ||||
| -rw-r--r-- | examples/triage/view.cpp | 11 |
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) |
