d32d64831c
fix crash on resume (forwarded request 107421 from jirislaby) OBS-URL: https://build.opensuse.org/request/show/107423 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kaffeine?expand=0&rev=46
32 lines
951 B
Diff
32 lines
951 B
Diff
---
|
|
src/dvb/dvbmanager.cpp | 16 +++++++++-------
|
|
1 file changed, 9 insertions(+), 7 deletions(-)
|
|
|
|
--- a/src/dvb/dvbmanager.cpp
|
|
+++ b/src/dvb/dvbmanager.cpp
|
|
@@ -448,15 +448,17 @@ void DvbManager::deviceAdded(DvbBackendD
|
|
void DvbManager::deviceRemoved(DvbBackendDevice *backendDevice)
|
|
{
|
|
for (int i = 0; i < deviceConfigs.size(); ++i) {
|
|
- if (deviceConfigs.at(i).device->getBackendDevice() == backendDevice) {
|
|
- if (deviceConfigs[i].useCount != 0) {
|
|
- deviceConfigs[i].useCount = 0;
|
|
- deviceConfigs[i].prioritizedUseCount = 0;
|
|
- deviceConfigs[i].device->release();
|
|
+ DvbDeviceConfig &it = deviceConfigs[i];
|
|
+
|
|
+ if (it.device && it.device->getBackendDevice() == backendDevice) {
|
|
+ if (it.useCount != 0) {
|
|
+ it.useCount = 0;
|
|
+ it.prioritizedUseCount = 0;
|
|
+ it.device->release();
|
|
}
|
|
|
|
- delete deviceConfigs[i].device;
|
|
- deviceConfigs[i].device = NULL;
|
|
+ delete it.device;
|
|
+ it.device = NULL;
|
|
break;
|
|
}
|
|
}
|