From 10c080521c525e1729b23dfa0afd08a1428f40d0 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 11 Jul 2019 09:59:23 +0200 Subject: Eradicate the last Q_FOREACH and mark the module clean This one is not trivial in that it isn't clear, a priori, that the loop body doesn't re-enter the class and ends up modifying m_videoProbes. But MFVideoProbeControl::bufferProbed() just schedules a deferred call to QMediaVideoProbeControl::videoFrameProbed() (via QueuedConnection), so this cannot happen, because we end the loop before we re-enter the event loop (if any) on this thread. Reentrancy from a different thread, OTOH, is not possible because we're holding m_videoProbeMutex while looping. Change-Id: I6c1e22cd01112f0b2650e056f0b7f4a392370b84 Reviewed-by: VaL Doroshchuk --- src/plugins/wmf/player/mftvideo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/wmf/player/mftvideo.cpp b/src/plugins/wmf/player/mftvideo.cpp index 747fe6aea..879911d55 100644 --- a/src/plugins/wmf/player/mftvideo.cpp +++ b/src/plugins/wmf/player/mftvideo.cpp @@ -573,7 +573,7 @@ STDMETHODIMP MFTransform::ProcessOutput(DWORD dwFlags, DWORD cOutputBufferCount, if (!m_videoProbes.isEmpty()) { QVideoFrame frame = makeVideoFrame(); - foreach (MFVideoProbeControl* probe, m_videoProbes) + for (MFVideoProbeControl* probe : qAsConst(m_videoProbes)) probe->bufferProbed(frame); } m_videoProbeMutex.unlock(); -- cgit v1.2.3