Skip to content

Commit 4bc7e15

Browse files
committed
Show Tracked memory sceanrio before executing deletes
1 parent a122682 commit 4bc7e15

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

include/utils/TrackedMemory.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include <type_traits>
1010
#include <utils/Logger.h>
1111

12-
#define ENABLE_MEMORY_TRACKING 0
12+
#define ENABLE_MEMORY_TRACKING 1
1313

1414
#define USE_TRACKED_SHARED_PTR ENABLE_MEMORY_TRACKING
1515
#define USE_TRACKED_DELETE_LATER ENABLE_MEMORY_TRACKING
@@ -40,7 +40,7 @@ void untrackedDeleteLater(T* ptr)
4040
QThread* thread = ptr->thread();
4141
if (thread && thread->isRunning())
4242
{
43-
ptr->deleteLater();
43+
QMetaObject::invokeMethod(ptr, "deleteLater", Qt::QueuedConnection);
4444
}
4545
else
4646
{
@@ -85,19 +85,22 @@ void trackedDeleteLater(T* ptr)
8585
QThread* thread = ptr->thread();
8686
if (thread && thread->isRunning())
8787
{
88-
ptr->deleteLater();
89-
Debug(log, "QObject<%s>::deleteLater() scheduled on thread '%s'", QSTRING_CSTR(typeName), QSTRING_CSTR(thread->objectName()));
88+
// Schedule deleteLater from the object's thread
89+
Debug(log, "QObject<%s>::deleteLater() scheduled via invokeMethod on thread '%s'",
90+
QSTRING_CSTR(typeName), QSTRING_CSTR(thread->objectName()));
91+
QMetaObject::invokeMethod(ptr, "deleteLater", Qt::QueuedConnection);
9092
}
9193
else
9294
{
93-
delete ptr;
9495
Debug(log, "QObject<%s> deleted immediately (thread not running).", QSTRING_CSTR(typeName));
96+
delete ptr;
9597
}
9698
}
9799
else
98100
{
99-
delete ptr;
100101
Debug(log, "Non-QObject<%s> deleted immediately.", QSTRING_CSTR(typeName));
102+
delete ptr;
103+
101104
}
102105
}
103106

0 commit comments

Comments
 (0)