Prevent Cantata from potentially crashing when closing
Directly deleting DevicePrivate members from within the destructor of DeviceManagerPrivate can lead to a crash in Qt's internal memory management. Better defer destruction by using deleteLater() like it has already been done in DevicePrivate::setBackendObject().
This commit is contained in:
4
3rdparty/solid-lite/devicemanager.cpp
vendored
4
3rdparty/solid-lite/devicemanager.cpp
vendored
@@ -59,9 +59,9 @@ Solid::DeviceManagerPrivate::~DeviceManagerPrivate()
|
||||
disconnect(backend, nullptr, this, nullptr);
|
||||
}
|
||||
|
||||
for (QtPointer<DevicePrivate> dev: m_devicesMap) {
|
||||
for (QtPointer<DevicePrivate> &dev: m_devicesMap) {
|
||||
if (dev.data() && !dev.data()->ref.deref()) {
|
||||
delete dev.data();
|
||||
dev.data()->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user