diff --git a/src/solid/devices/frontend/device.cpp b/src/solid/devices/frontend/device.cpp --- a/src/solid/devices/frontend/device.cpp +++ b/src/solid/devices/frontend/device.cpp @@ -218,9 +218,6 @@ Solid::DevicePrivate::~DevicePrivate() { - Q_FOREACH (DeviceInterface *iface, m_ifaces) { - delete iface->d_ptr->backendObject(); - } setBackendObject(nullptr); } diff --git a/src/solid/devices/frontend/device_p.h b/src/solid/devices/frontend/device_p.h --- a/src/solid/devices/frontend/device_p.h +++ b/src/solid/devices/frontend/device_p.h @@ -61,7 +61,7 @@ private: QString m_udi; QPointer m_backendObject; - QMap m_ifaces; + QMap> m_ifaces; }; } diff --git a/src/solid/devices/frontend/deviceinterface.cpp b/src/solid/devices/frontend/deviceinterface.cpp --- a/src/solid/devices/frontend/deviceinterface.cpp +++ b/src/solid/devices/frontend/deviceinterface.cpp @@ -35,6 +35,7 @@ Solid::DeviceInterface::~DeviceInterface() { + delete d_ptr->backendObject(); delete d_ptr; d_ptr = nullptr; }