From 1ff386a4bfe34ce1bea6c01616a6310b71c4db98 Mon Sep 17 00:00:00 2001 From: pixl Date: Mon, 1 May 2023 22:40:37 -0400 Subject: [PATCH] Fix EventHandlerList move assignment --- src/logid/backend/EventHandlerList.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/logid/backend/EventHandlerList.h b/src/logid/backend/EventHandlerList.h index 1f30523..93436e8 100644 --- a/src/logid/backend/EventHandlerList.h +++ b/src/logid/backend/EventHandlerList.h @@ -67,9 +67,16 @@ public: EventHandlerLock& operator=(const EventHandlerLock&) = delete; EventHandlerLock& operator=(EventHandlerLock&& o) noexcept { - this->_list = o._list; - this->_iterator = o._iterator; - o._list.reset(); + if (this != &o) { + if (auto list = _list.lock()) { + this->_list.reset(); + list->remove(_iterator); + } + + this->_list = o._list; + o._list.reset(); + this->_iterator = o._iterator; + } return *this; }