summaryrefslogtreecommitdiff
path: root/ui/progresstask.h
diff options
context:
space:
mode:
Diffstat (limited to 'ui/progresstask.h')
-rw-r--r--ui/progresstask.h32
1 files changed, 24 insertions, 8 deletions
diff --git a/ui/progresstask.h b/ui/progresstask.h
index 9245349c..08cc8685 100644
--- a/ui/progresstask.h
+++ b/ui/progresstask.h
@@ -303,12 +303,16 @@ class BINARYNINJAUIAPI BackgroundThread : public QObject
{
for (auto& func : m_then)
{
- if (m_hasOwner && !m_owner)
+ if (m_hasOwner && m_owner.isNull())
return;
switch (func.first)
{
case MainThread:
- BinaryNinja::ExecuteOnMainThreadAndWait([&]() { value = func.second(value); });
+ BinaryNinja::ExecuteOnMainThreadAndWait([&]() {
+ if (m_hasOwner && m_owner.isNull())
+ return;
+ value = func.second(value);
+ });
break;
case Background:
value = func.second(value);
@@ -317,14 +321,18 @@ class BINARYNINJAUIAPI BackgroundThread : public QObject
}
for (auto& func : m_finally)
{
- if (m_hasOwner && !m_owner)
+ if (m_hasOwner && m_owner.isNull())
return;
try
{
switch (func.first)
{
case MainThread:
- BinaryNinja::ExecuteOnMainThreadAndWait([&]() { func.second(true); });
+ BinaryNinja::ExecuteOnMainThreadAndWait([&]() {
+ if (m_hasOwner && m_owner.isNull())
+ return;
+ func.second(true);
+ });
break;
case Background:
func.second(true);
@@ -349,14 +357,18 @@ class BINARYNINJAUIAPI BackgroundThread : public QObject
std::exception_ptr exc = std::current_exception();
for (auto& func : m_catch)
{
- if (m_hasOwner && !m_owner)
+ if (m_hasOwner && m_owner.isNull())
return;
try
{
switch (func.first)
{
case MainThread:
- BinaryNinja::ExecuteOnMainThreadAndWait([&]() { func.second(exc); });
+ BinaryNinja::ExecuteOnMainThreadAndWait([&]() {
+ if (m_hasOwner && m_owner.isNull())
+ return;
+ func.second(exc);
+ });
break;
case Background:
func.second(exc);
@@ -370,14 +382,18 @@ class BINARYNINJAUIAPI BackgroundThread : public QObject
}
for (auto& func : m_finally)
{
- if (m_hasOwner && !m_owner)
+ if (m_hasOwner && m_owner.isNull())
return;
try
{
switch (func.first)
{
case MainThread:
- BinaryNinja::ExecuteOnMainThreadAndWait([&]() { func.second(false); });
+ BinaryNinja::ExecuteOnMainThreadAndWait([&]() {
+ if (m_hasOwner && m_owner.isNull())
+ return;
+ func.second(false);
+ });
break;
case Background:
func.second(false);