Do not leak CollectionExecuteWrapper of dequeued collections
When the collection gets dequeued the execute wrapper never got cleanup called, thus it would get leaked. This patch fixes it: ``` Direct leak of 24 byte(s) in 1 object(s) allocated from: #0 0x7fc7c54e2002 in operator new(unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:95 #1 0x7fc7c4ec67a2 in ThreadWeaver::Collection::aboutToBeQueued_locked(ThreadWeaver::QueueAPI*) /home/milian/projects/kde/src/frameworks/threadweaver/src/collection.cpp:77 #2 0x7fc7c4f13245 in ThreadWeaver::Job::aboutToBeQueued(ThreadWeaver::QueueAPI*) /home/milian/projects/kde/src/frameworks/threadweaver/src/job.cpp:138 #3 0x7fc7c4f6b8bb in ThreadWeaver::Weaver::enqueue_p(QList<QSharedPointer<ThreadWeaver::JobInterface> > const&) /home/milian/projects/kde/src/frameworks/threadweaver/src/weaver.cpp:221 #4 0x7fc7c4f974e3 in ThreadWeaver::WeaverImplState::enqueue(QList<QSharedPointer<ThreadWeaver::JobInterface> > const&) /home/milian/projects/kde/src/frameworks/threadweaver/src/weaverimplstate.cpp:59 #5 0x7fc7c4f6ad52 in ThreadWeaver::Weaver::enqueue(QList<QSharedPointer<ThreadWeaver::JobInterface> > const&) /home/milian/projects/kde/src/frameworks/threadweaver/src/weaver.cpp:207 #6 0x7fc7c4f4048b in ThreadWeaver::Queue::enqueue(QList<QSharedPointer<ThreadWeaver::JobInterface> > const&) /home/milian/projects/kde/src/frameworks/threadweaver/src/queue.cpp:169 #7 0x7fc7c4f4084e in ThreadWeaver::Queue::enqueue(QSharedPointer<ThreadWeaver::JobInterface> const&) /home/milian/projects/kde/src/frameworks/threadweaver/src/queue.cpp:174 #8 0x55888b3c19a9 in QSharedPointer<ThreadWeaver::JobInterface> ThreadWeaver::enqueue<QSharedPointer<ThreadWeaver::JobInterface> >(ThreadWeaver::Queue*, QSharedPointer<ThreadWeaver::JobInterface>) /home/milian/projects/kde/src/frameworks/threadweaver/src/queueing.h:68 #9 0x55888b3c1b09 in ThreadWeaver::enqueue_raw(ThreadWeaver::Queue*, ThreadWeaver::JobInterface*) /home/milian/projects/kde/src/frameworks/threadweaver/src/queueing.h:82 #10 0x55888b39b805 in JobTests::DequeueSuspendedSequenceTest() /home/milian/projects/kde/src/frameworks/threadweaver/autotests/JobTests.cpp:900 #11 0x55888b3aee9e in JobTests::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/milian/projects/kde/build/frameworks/threadweaver/autotests/ThreadWeaverJobTests_autogen/include/moc_JobTests.cpp:551 #12 0x7fc7c47500a4 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) (/usr/lib/libQt6Core.so.6+0x1500a4) (BuildId: b6b6413f12bdfa0f594dbec300f816d4442d5baf) #13 0x7fc7c475040b in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) (/usr/lib/libQt6Core.so.6+0x15040b) (BuildId: b6b6413f12bdfa0f594dbec300f816d4442d5baf) ```
parent
ed96e854
Please register or sign in to comment