summaryrefslogtreecommitdiff
path: root/src/multimedia/camera/qcamera.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/camera/qcamera.cpp')
-rw-r--r--src/multimedia/camera/qcamera.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/multimedia/camera/qcamera.cpp b/src/multimedia/camera/qcamera.cpp
index c7d64155c..bd3f30739 100644
--- a/src/multimedia/camera/qcamera.cpp
+++ b/src/multimedia/camera/qcamera.cpp
@@ -362,9 +362,17 @@ QCamera::QCamera(const QByteArray& deviceName, QObject *parent):
// The camera should not be used if device with requested name does not exist.
if (!found) {
- if (d->service && d->control)
- d->service->releaseControl(d->control);
+ if (d->service) {
+ if (d->control)
+ d->service->releaseControl(d->control);
+ if (d->deviceControl)
+ d->service->releaseControl(d->deviceControl);
+ if (d->infoControl)
+ d->service->releaseControl(d->infoControl);
+ }
d->control = nullptr;
+ d->deviceControl = nullptr;
+ d->infoControl = nullptr;
d->error = QCamera::ServiceMissingError;
d->errorString = QCamera::tr("The camera service is missing");
}