diff --git a/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp b/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp --- a/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp +++ b/src/solid/devices/backends/udisks2/udisksdevicebackend.cpp @@ -41,9 +41,8 @@ return backend; } - if (s_backends.contains(udi)) { - backend = s_backends.value(udi); - } else if (create) { + backend = s_backends.value(udi); + if (!backend && create) { backend = new DeviceBackend(udi); s_backends.insert(udi, backend); } @@ -53,11 +52,7 @@ void DeviceBackend::destroyBackend(const QString &udi) { - if (s_backends.contains(udi)) { - DeviceBackend *backend = s_backends.value(udi); - s_backends.remove(udi); - delete backend; - } + delete s_backends.take(udi); } DeviceBackend::DeviceBackend(const QString &udi)