From cff85a621e3fd5a4cf43809584dedfcd9e8b0efe Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Mon, 9 Jan 2017 21:25:15 +0100 Subject: logic/libs: options/scoped: don't reset dialog on proto load failure --- logic/selected-libraries.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'logic') diff --git a/logic/selected-libraries.cpp b/logic/selected-libraries.cpp index 4a1a9f09..ffa3e496 100644 --- a/logic/selected-libraries.cpp +++ b/logic/selected-libraries.cpp @@ -1,4 +1,5 @@ #include "selected-libraries.hpp" +#include "options/scoped.hpp" #include SelectedLibraries::SelectedLibraries(QFrame* frame, dylibptr t, dylibptr p, dylibptr f) : @@ -7,19 +8,25 @@ SelectedLibraries::SelectedLibraries(QFrame* frame, dylibptr t, dylibptr p, dyli pProtocol(nullptr), correct(false) { + using namespace options; + + const bool prev_teardown_flag = opts::is_tracker_teardown(); + + opts::set_teardown_flag(true); + pProtocol = make_dylib_instance(p); if (!pProtocol) { qDebug() << "protocol dylib load failure"; - return; + goto end; } if(!pProtocol->correct()) { qDebug() << "protocol load failure"; pProtocol = nullptr; - return; + goto end; } pTracker = make_dylib_instance(t); @@ -28,10 +35,12 @@ SelectedLibraries::SelectedLibraries(QFrame* frame, dylibptr t, dylibptr p, dyli if (!pTracker) { qDebug() << "tracker dylib load failure"; - return; + goto end; } pTracker->start_tracker(frame); correct = true; +end: + opts::set_teardown_flag(prev_teardown_flag); } -- cgit v1.2.3