https://bugs.kde.org/show_bug.cgi?id=356545

David Edmundson <k...@davidedmundson.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |CONFIRMED

--- Comment #9 from David Edmundson <k...@davidedmundson.co.uk> ---
Valgrind trace

Seems we have some QML still alive and trying to access the view after it's
been deleted.

==30841==    at 0x81339CC: QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::data() const (qscopedpointer.h:135)
==30841==    by 0x8140BE8: QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::pointer
qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >
>(QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > const&)
(qglobal.h:983)
==30841==    by 0x8141165: QObject::d_func() (qobject.h:110)
==30841==    by 0x814133F: QObjectPrivate::get(QObject*) (qobject_p.h:192)
==30841==    by 0x834EC8F: QQmlData::wasDeleted(QObject*) (qqmldata_p.h:240)
==30841==    by 0x83474C2: QV4::QObjectWrapper::wrap(QV4::ExecutionEngine*,
QObject*) (qv4qobjectwrapper.cpp:572)
==30841==    by 0x829E07B: QV4::ExecutionEngine::fromVariant(QVariant const&)
(qv4engine.cpp:1423)
==30841==    by 0x842A50A: QV4::QmlContextWrapper::get(QV4::Managed*,
QV4::String*, bool*) (qqmlcontextwrapper.cpp:232)
==30841==    by 0x821DCD8: QV4::Object::get(QV4::String*, bool*)
(qv4object_p.h:276)
==30841==    by 0x82AEB5E: QV4::ExecutionContext::getProperty(QV4::String*)
(qv4context.cpp:383)
==30841==    by 0x8366D91:
QV4::Runtime::getActivationProperty(QV4::ExecutionEngine*, int)
(qv4runtime.cpp:693)
==30841==    by 0x359D37CC: ???
==30841==  Address 0x3173d0a8 is 8 bytes inside a block of size 248 free'd
==30841==    at 0x4C2A144: operator delete(void*) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30841==    by 0x481AB1: PanelView::~PanelView() (panelview.cpp:124)
==30841==    by 0xBC6150A: qDeleteInEventHandler(QObject*) (qobject.cpp:4455)
==30841==    by 0xBC58F37: QObject::event(QEvent*) (qobject.cpp:1230)
==30841==    by 0xB35C32B: QWindow::event(QEvent*) (qwindow.cpp:2077)
==30841==    by 0x7591EF8: QQuickWindow::event(QEvent*) (qquickwindow.cpp:1413)
==30841==    by 0x485C3A: PanelView::event(QEvent*) (panelview.cpp:844)
==30841==    by 0xA95D5F5: QApplicationPrivate::notify_helper(QObject*,
QEvent*) (qapplication.cpp:3716)
==30841==    by 0xA95AD54: QApplication::notify(QObject*, QEvent*)
(qapplication.cpp:3160)
==30841==    by 0xBC21055: QCoreApplication::notifyInternal(QObject*, QEvent*)
(qcoreapplication.cpp:965)
==30841==    by 0xBC24D74: QCoreApplication::sendEvent(QObject*, QEvent*) (in
/opt/qt5/lib/libQt5Core.so.5.5.1)
==30841==    by 0xBC223D1: QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) (qcoreapplication.cpp:1593)
==30841==  Block was alloc'd at
==30841==    at 0x4C29118: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30841==    by 0x49AB0A: ShellCorona::createWaitingPanels()
(shellcorona.cpp:1016)
==30841==    by 0x49F32C: ShellCorona::addPanel(QString const&)
(shellcorona.cpp:1526)
==30841==    by 0x49F03F: ShellCorona::addPanel(QAction*)
(shellcorona.cpp:1488)
==30841==    by 0x4A06FE: ShellCorona::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (moc_shellcorona.cpp:295)
==30841==    by 0xBC5F9CC: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3713)
==30841==    by 0xBC5F1D7: QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (qobject.cpp:3578)
==30841==    by 0xAB593D6: QMenu::triggered(QAction*) (moc_qmenu.cpp:273)
==30841==    by 0xAB50EA4: QMenuPrivate::_q_actionTriggered() (qmenu.cpp:1232)
==30841==    by 0xAB58DDF: QMenu::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (moc_qmenu.cpp:122)
==30841==    by 0xBC5F9CC: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3713)
==30841==    by 0xBC5F1D7: QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (qobject.cpp:3578)
==30841== 
==30841== Invalid read of size 1
==30841==    at 0x834EC9F: QQmlData::wasDeleted(QObject*) (qqmldata_p.h:241)
==30841==    by 0x83474C2: QV4::QObjectWrapper::wrap(QV4::ExecutionEngine*,
QObject*) (qv4qobjectwrapper.cpp:572)
==30841==    by 0x829E07B: QV4::ExecutionEngine::fromVariant(QVariant const&)
(qv4engine.cpp:1423)
==30841==    by 0x842A50A: QV4::QmlContextWrapper::get(QV4::Managed*,
QV4::String*, bool*) (qqmlcontextwrapper.cpp:232)
==30841==    by 0x821DCD8: QV4::Object::get(QV4::String*, bool*)
(qv4object_p.h:276)
==30841==    by 0x82AEB5E: QV4::ExecutionContext::getProperty(QV4::String*)
(qv4context.cpp:383)
==30841==    by 0x8366D91:
QV4::Runtime::getActivationProperty(QV4::ExecutionEngine*, int)
(qv4runtime.cpp:693)
==30841==    by 0x359D37CC: ???
==30841==    by 0x82E2EB2: QV4::SimpleScriptFunction::call(QV4::Managed*,
QV4::CallData*) (qv4functionobject.cpp:564)
==30841==    by 0x821DE13: QV4::Object::call(QV4::CallData*)
(qv4object_p.h:302)
==30841==    by 0x841DCA5: QQmlJavaScriptExpression::evaluate(QQmlContextData*,
QV4::Value const&, QV4::CallData*, bool*) (qqmljavascriptexpression.cpp:158)
==30841==    by 0x83B0B9F: QQmlBoundSignalExpression::evaluate(void**)
(qqmlboundsignal.cpp:281)
==30841==  Address 0x31363790 is 32 bytes inside a block of size 648 free'd
==30841==    at 0x4C2A144: operator delete(void*) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30841==    by 0x758E059: QQuickWindowPrivate::~QQuickWindowPrivate()
(qquickwindow.cpp:428)
==30841==    by 0xBC651DF:
QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (qscopedpointer.h:54)
==30841==    by 0xBC6379E: QScopedPointer<QObjectData,
QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (qscopedpointer.h:101)
==30841==    by 0xBC58CAA: QObject::~QObject() (qobject.cpp:883)
==30841==    by 0xB358A03: QWindow::~QWindow() (qwindow.cpp:202)
==30841==    by 0x7591813: QQuickWindow::~QQuickWindow()
(qquickwindow.cpp:1111)
==30841==    by 0x5E0D17B:
KQuickAddons::QuickViewSharedEngine::~QuickViewSharedEngine()
(quickviewsharedengine.cpp:154)
==30841==    by 0x5075918: PlasmaQuick::ContainmentView::~ContainmentView()
(containmentview.cpp:225)
==30841==    by 0x481A68: PanelView::~PanelView() (panelview.cpp:118)
==30841==    by 0x481AA5: PanelView::~PanelView() (panelview.cpp:124)
==30841==    by 0xBC6150A: qDeleteInEventHandler(QObject*) (qobject.cpp:4455)
==30841==  Block was alloc'd at
==30841==    at 0x4C29118: operator new(unsigned long) (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30841==    by 0x7591420: QQuickWindow::QQuickWindow(QWindow*)
(qquickwindow.cpp:1078)
==30841==    by 0x5E0D0CB:
KQuickAddons::QuickViewSharedEngine::QuickViewSharedEngine(QWindow*)
(quickviewsharedengine.cpp:150)
==30841==    by 0x507549F:
PlasmaQuick::ContainmentView::ContainmentView(Plasma::Corona*, QWindow*)
(containmentview.cpp:184)
==30841==    by 0x48107F: PanelView::PanelView(ShellCorona*, QScreen*,
QWindow*) (panelview.cpp:64)
==30841==    by 0x49AB28: ShellCorona::createWaitingPanels()
(shellcorona.cpp:1016)
==30841==    by 0x49F32C: ShellCorona::addPanel(QString const&)
(shellcorona.cpp:1526)
==30841==    by 0x49F03F: ShellCorona::addPanel(QAction*)
(shellcorona.cpp:1488)
==30841==    by 0x4A06FE: ShellCorona::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**) (moc_shellcorona.cpp:295)
==30841==    by 0xBC5F9CC: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3713)
==30841==    by 0xBC5F1D7: QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (qobject.cpp:3578)
==30841==    by 0xAB593D6: QMenu::triggered(QAction*) (moc_qmenu.cpp:273)
==30841==

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to