From 2e97824aa24528f491090b5c79399b89f3b5ebbf Mon Sep 17 00:00:00 2001 From: lijincheng Date: Thu, 21 Sep 2023 11:50:17 +0800 Subject: [PATCH] Bugfix for using remove in c++ deque 1.change to use iterator Issue:https://gitee.com/openharmony/commonlibrary_c_utils/issues/I7WM7Y Signed-off-by: lijincheng --- base/include/safe_queue.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/base/include/safe_queue.h b/base/include/safe_queue.h index 5cc4682..08929f1 100644 --- a/base/include/safe_queue.h +++ b/base/include/safe_queue.h @@ -49,10 +49,15 @@ public: } } - void Erase(T& object) + void Erase(const T& object) { std::lock_guard lock(mutex_); - deque_.remove(object); + for (auto iter = deque_.begin(); iter != deque_.end(); iter++) { + if (*iter == object) { + deque_.erase(iter); + break; + } + } } bool Empty() -- Gitee