Merge "codec2: fix rare native crash in buffer queue thread" into qt-dev
diff --git a/media/codec2/sfplugin/C2OMXNode.cpp b/media/codec2/sfplugin/C2OMXNode.cpp
index d27fe32..78d221e 100644
--- a/media/codec2/sfplugin/C2OMXNode.cpp
+++ b/media/codec2/sfplugin/C2OMXNode.cpp
@@ -76,10 +76,11 @@
             Mutexed<Jobs>::Locked jobs(mJobs);
             nsecs_t nowNs = systemTime();
             bool queued = false;
-            for (auto it = jobs->queues.begin(); it != jobs->queues.end(); ++it) {
+            for (auto it = jobs->queues.begin(); it != jobs->queues.end(); ) {
                 Queue &queue = it->second;
                 if (queue.workList.empty()
                         || nowNs - queue.lastQueuedTimestampNs < kIntervalNs) {
+                    ++it;
                     continue;
                 }
                 std::shared_ptr<Codec2Client::Component> comp = queue.component.lock();
@@ -109,6 +110,7 @@
                 }
                 jobs.lock();
 
+                it = jobs->queues.upper_bound(comp);
                 queued = true;
             }
             if (queued) {