From d50a09965ae53e02caabdbcf4994ed9bc0ea3293 Mon Sep 17 00:00:00 2001 From: Samuel Nevala Date: Wed, 14 Oct 2015 10:33:57 +0300 Subject: [PATCH] winrt: Fix two possible null pointer exceptions If camera state is changed rapidly these can occur. Change-Id: Ia9ccf9e03162350cd411ff9fc059c14f47b9a42e Reviewed-by: Oliver Wolff Reviewed-by: Andrew Knight --- src/plugins/winrt/qwinrtcameracontrol.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/winrt/qwinrtcameracontrol.cpp b/src/plugins/winrt/qwinrtcameracontrol.cpp index d20955da..3489048d 100644 --- a/src/plugins/winrt/qwinrtcameracontrol.cpp +++ b/src/plugins/winrt/qwinrtcameracontrol.cpp @@ -445,7 +445,7 @@ public: { m_stream->Flush(); m_videoRenderer->setActive(false); - return m_presentationClock->Stop(); + return m_presentationClock ? m_presentationClock->Stop() : S_OK; } HRESULT __stdcall OnClockStart(MFTIME systemTime, LONGLONG clockStartOffset) Q_DECL_OVERRIDE @@ -624,8 +624,10 @@ void QWinRTCameraControl::setState(QCamera::State state) if (FAILED(hr)) emit error(QCamera::InvalidRequestError, qt_error_string(hr)); - d->mediaSink->Shutdown(); - d->mediaSink.Reset(); + if (d->mediaSink) { + d->mediaSink->Shutdown(); + d->mediaSink.Reset(); + } d->state = QCamera::LoadedState; emit stateChanged(d->state);