libkmpris: disconnect from PlayerContainer in MultiplexerModel's dtor
Reason for the change
MultiplexerModel is destroyed before PlayerContainer but it's not guaranteed the destroyed signal is disconnected after ~MultiplexerModel()
libQt6Core.so.6.7.2+0x196120QObjectPrivate::connectImpl (qobject.cpp:5277) |
---|
libQt6Core.so.6.7.2+0x19645fQObject::connectImpl (qobject.cpp:5189) |
libkmpris.so.6.1.4+0x021fe7QObject::connect (qobject.h:263) |
libkmpris.so.6.1.4+0x021fe7MultiplexerModel::updateActivePlayer (multiplexermodel.cpp:110) |
libQt6Core.so.6.7.2+0x1a3396QtPrivate::QSlotObjectBase::call (qobjectdefs_impl.h:469) |
libQt6Core.so.6.7.2+0x1a3396doActivate (qobject.cpp:4086) |
libQt6Core.so.6.7.2+0x1a3396QtPrivate::QSlotObjectBase::call (qobjectdefs_impl.h:469) |
libQt6Core.so.6.7.2+0x1a3396doActivate (qobject.cpp:4086) |
libQt6Core.so.6.7.2+0x1926e5QObject::destroyed (moc_qobject.cpp:229) |
libQt6Core.so.6.7.2+0x1926e5QObject::~QObject (qobject.cpp:1074) |
libQt6Core.so.6.7.2+0x1926e5QObject::destroyed (moc_qobject.cpp:229) |
libQt6Core.so.6.7.2+0x1926e5QObject::~QObject (qobject.cpp:1074) |
libkmpris.so.6.1.4+0x025155PlayerContainer::~PlayerContainer (playercontainer.cpp:189) |
libQt6Core.so.6.7.2+0x18c60aQObjectPrivate::deleteChildren (qobject.cpp:2222) |
libQt6Core.so.6.7.2+0x192677QObject::~QObject (qobject.cpp:1172) |
libkmpris.so.6.1.4+0x012080Mpris2SourceModel::~Mpris2SourceModel (mpris2sourcemodel.cpp:44) |
libkmpris.so.6.1.4+0x012080std::_Sp_counted_ptr::_M_dispose (shared_ptr_base.h:428) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use (shared_ptr_base.h:175) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use_cold (shared_ptr_base.h:199) |
libkmpris.so.6.1.4+0x020632std::_Sp_counted_base::_M_release (shared_ptr_base.h:353) |
libkmpris.so.6.1.4+0x020632std::__shared_count::~__shared_count (shared_ptr_base.h:1069) |
libkmpris.so.6.1.4+0x020632std::__shared_ptr::~__shared_ptr (shared_ptr_base.h:1525) |
libkmpris.so.6.1.4+0x020632std::shared_ptr::~shared_ptr (shared_ptr.h:175) |
libkmpris.so.6.1.4+0x020632Mpris2FilterProxyModel::~Mpris2FilterProxyModel (mpris2filterproxymodel.cpp:40) |
libkmpris.so.6.1.4+0x0206a0Mpris2FilterProxyModel::~Mpris2FilterProxyModel (mpris2filterproxymodel.cpp:40) |
libkmpris.so.6.1.4+0x0206a0std::_Sp_counted_ptr::_M_dispose (shared_ptr_base.h:428) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use (shared_ptr_base.h:175) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use_cold (shared_ptr_base.h:199) |
libkmpris.so.6.1.4+0x020a17std::_Sp_counted_base::_M_release (shared_ptr_base.h:353) |
libkmpris.so.6.1.4+0x020a17std::__shared_count::~__shared_count (shared_ptr_base.h:1069) |
libkmpris.so.6.1.4+0x020a17std::__shared_ptr::~__shared_ptr (shared_ptr_base.h:1525) |
libkmpris.so.6.1.4+0x020a17std::shared_ptr::~shared_ptr (shared_ptr.h:175) |
libkmpris.so.6.1.4+0x020a17Multiplexer::~Multiplexer (multiplexer.cpp:45) |
libkmpris.so.6.1.4+0x020a17std::destroy_at (stl_construct.h:88) |
libkmpris.so.6.1.4+0x020a17std::_Destroy (stl_construct.h:149) |
libkmpris.so.6.1.4+0x020a17std::allocator_traits::destroy (alloc_traits.h:671) |
libkmpris.so.6.1.4+0x020a17std::_Sp_counted_ptr_inplace::_M_dispose (shared_ptr_base.h:616) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use (shared_ptr_base.h:175) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use_cold (shared_ptr_base.h:199) |
libkmpris.so.6.1.4+0x020ad7std::_Sp_counted_base::_M_release (shared_ptr_base.h:353) |
libkmpris.so.6.1.4+0x020ad7std::__shared_count::~__shared_count (shared_ptr_base.h:1069) |
libkmpris.so.6.1.4+0x020ad7std::__shared_ptr::~__shared_ptr (shared_ptr_base.h:1525) |
libkmpris.so.6.1.4+0x020ad7std::shared_ptr::~shared_ptr (shared_ptr.h:175) |
libkmpris.so.6.1.4+0x020ad7MultiplexerModel::~MultiplexerModel (multiplexermodel.cpp:61) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use (shared_ptr_base.h:175) |
libkmpris.so.6.1.4+0x0204b5std::_Sp_counted_base::_M_release_last_use_cold (shared_ptr_base.h:199) |
libkmpris.so.6.1.4+0x020827std::_Sp_counted_base::_M_release (shared_ptr_base.h:353) |
libkmpris.so.6.1.4+0x020827std::__shared_count::~__shared_count (shared_ptr_base.h:1069) |
libkmpris.so.6.1.4+0x020827std::__shared_ptr::~__shared_ptr (shared_ptr_base.h:1525) |
libkmpris.so.6.1.4+0x020827std::shared_ptr::~shared_ptr (shared_ptr.h:175) |
libkmpris.so.6.1.4+0x020827Mpris2Model::~Mpris2Model (mpris2model.cpp:37) |
libkmpris.so.6.1.4+0x032c18QQmlPrivate::QQmlElement::~QQmlElement (qqmlprivate.h:100) |
libQt6Core.so.6.7.2+0x18c60aQObjectPrivate::deleteChildren (qobject.cpp:2222) |
libQt6Core.so.6.7.2+0x192677QObject::~QObject (qobject.cpp:1172) |
libPlasmaQuick.so.6.1.4+0x02db23PlasmoidItem::~PlasmoidItem (plasmoiditem.cpp:46) |
libPlasmaQuick.so.6.1.4+0x02db23QQmlPrivate::QQmlElement::~QQmlElement (qqmlprivate.h:100) |
libPlasmaQuick.so.6.1.4+0x04a274PlasmaQuick::SharedQmlEngine::~SharedQmlEngine (sharedqmlengine.cpp:153) |
libPlasmaQuick.so.6.1.4+0x027647PlasmaQuick::SharedQmlEngine::~SharedQmlEngine (sharedqmlengine.cpp:155) |
libPlasmaQuick.so.6.1.4+0x027647operator() (appletquickitem.cpp:657) |
libPlasmaQuick.so.6.1.4+0x027647call (qobjectdefs_impl.h:137) |
libPlasmaQuick.so.6.1.4+0x027647call (qobjectdefs_impl.h:345) |
libPlasmaQuick.so.6.1.4+0x027647QtPrivate::QCallableObject::impl (qobjectdefs_impl.h:555) |
libQt6Core.so.6.7.2+0x1a3396QtPrivate::QSlotObjectBase::call (qobjectdefs_impl.h:469) |
libQt6Core.so.6.7.2+0x1a3396doActivate (qobject.cpp:4086) |
libQt6Core.so.6.7.2+0x1a3396QtPrivate::QSlotObjectBase::call (qobjectdefs_impl.h:469) |
libQt6Core.so.6.7.2+0x1a3396doActivate (qobject.cpp:4086) |
libPlasma.so.6.1.4+0x023924Plasma::Applet::appletDeleted (moc_applet.cpp:926) |
libPlasma.so.6.1.4+0x018d64Plasma::Applet::~Applet (applet.cpp:79) |
libPlasma.so.6.1.4+0x018e55Plasma::Applet::~Applet (applet.cpp:92) |
libQt6Core.so.6.7.2+0x18c60aQObjectPrivate::deleteChildren (qobject.cpp:2222) |
libQt6Core.so.6.7.2+0x192677QObject::~QObject (qobject.cpp:1172) |
org.kde.plasma.private.systemtray+0x013094SystemTray::~SystemTray (systemtray.cpp:50) |
libQt6Core.so.6.7.2+0x18c60aQObjectPrivate::deleteChildren (qobject.cpp:2222) |
libQt6Core.so.6.7.2+0x192677QObject::~QObject (qobject.cpp:1172) |
org.kde.plasma.systemtray+0x0035d0 |
libQt6Core.so.6.7.2+0x18c60aQObjectPrivate::deleteChildren (qobject.cpp:2222) |
libQt6Core.so.6.7.2+0x192677QObject::~QObject (qobject.cpp:1172) |
libPlasma.so.6.1.4+0x027f85Plasma::Containment::~Containment (containment.cpp:66) |
plasmashell+0x058f9bShellCorona::~ShellCorona (shellcorona.cpp:366)In App |
plasmashell+0x059424ShellCorona::~ShellCorona (shellcorona.cpp:368)In App |
Called fromlibQt6Core.so.6.7.2+0x18d689qDeleteInEventHandler (qobject.cpp:5002) |
Test plan
Screenshots or screen recordings
Bugs fixed
SENTRY: PLASMA-WORKSPACE-10CA
Edited by Fushan Wen