diff options
-rw-r--r-- | Libraries/LibCore/CEventLoop.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Libraries/LibCore/CEventLoop.cpp b/Libraries/LibCore/CEventLoop.cpp index 719e136950..54b1830406 100644 --- a/Libraries/LibCore/CEventLoop.cpp +++ b/Libraries/LibCore/CEventLoop.cpp @@ -141,8 +141,12 @@ void CEventLoop::pump(WaitMode mode) if (m_exit_requested) { LOCKER(m_lock); - // FIXME: Shouldn't we only prepend the events that haven't been processed yet? - m_queued_events.prepend(move(events)); + decltype(m_queued_events) new_event_queue; + new_event_queue.ensure_capacity(m_queued_events.size() + events.size()); + for (; i < events.size(); ++i) + new_event_queue.unchecked_append(move(events[i])); + new_event_queue.append(move(m_queued_events)); + m_queued_events = move(new_event_queue); return; } } |