Holger Freyther <holger <at> freyther.de> writes:

> 
> Hi,
> 
> it appears to me that the EventDispatcher and FontDatabase are leaked
> on exit (even on the XCB plugin). Is there any plan to resolve that?

One example that got introduced when Qt Quick2 was imported into the
qtbase repository.

operator new(unsigned int) (vg_replace_malloc.c:255)
QUnifiedTimer::instance(bool) (qabstractanimation.cpp:183)
QAnimationDriver::~QAnimationDriver() (qabstractanimation.cpp:461)
QDefaultAnimationDriver::~QDefaultAnimationDriver()
QUnifiedTimer::~QUnifiedTimer()
QUnifiedTimer::~QUnifiedTimer() (qabstractanimation_p.h:146)
void qThreadStorage_deleteData<QUnifiedTimer>(void*, QUnifiedTimer**)
QThreadStorage<QUnifiedTimer*>::deleteData(void*) (qthreadstorage.h:140)
QThreadStorageData::finish(void**) (qthreadstorage.cpp:203)
QCoreApplicationPrivate::cleanupThreadData() (qcoreapplication.cpp:377)
QGuiApplicationPrivate::~QGuiApplicationPrivate() (qguiap....cpp:406)
QApplicationPrivate::~QApplicationPrivate() (qapplication.cpp:208)
QApplicationPrivate::~QApplicationPrivate() (qapplication.cpp:212)
QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*)
...

the easiest fix would be:
 QAnimationDriver::~QAnimationDriver()
 {
-    QUnifiedTimer *timer = QUnifiedTimer::instance(true);
-    if (timer->canUninstallAnimationDriver(this))
+    QUnifiedTimer *timer = QUnifiedTimer::instance(false);
+    if (time && timer->canUninstallAnimationDriver(this))
         uninstall();
 }

ask the 'factory' to not create an instance. I could only trace this
code back to import of Qt Quick2 (anyone has nice git grafts?). Can
we get a 'clean' shutdown into the goals of Qt5, even if it is only
done in a debug build?


cheers
  holger

_______________________________________________
Qt5-feedback mailing list
[email protected]
http://lists.qt.nokia.com/mailman/listinfo/qt5-feedback

Reply via email to