chore: use std::unique_prt for EventQueue's Buffer

port input-leap/9dbfd551cda4367bdc8067b5c3ca9c4027494503
ported-by sithlord48
This commit is contained in:
Povilas Kanapickas
2025-05-24 21:33:42 -04:00
committed by Nick Bolton
parent 0b4a2e0e5b
commit 807e60ded2
2 changed files with 7 additions and 7 deletions

View File

@ -32,12 +32,11 @@ EventQueue::EventQueue() : m_readyMutex(new Mutex), m_readyCondVar(new CondVar<b
m_mutex = ARCH->newMutex();
ARCH->setSignalHandler(Arch::kINTERRUPT, &interrupt, this);
ARCH->setSignalHandler(Arch::kTERMINATE, &interrupt, this);
m_buffer = new SimpleEventQueueBuffer;
m_buffer = std::make_unique<SimpleEventQueueBuffer>();
}
EventQueue::~EventQueue()
{
delete m_buffer;
delete m_readyCondVar;
delete m_readyMutex;
@ -84,7 +83,7 @@ void EventQueue::adoptBuffer(IEventQueueBuffer *buffer)
}
// discard old buffer and old events
delete m_buffer;
m_buffer.reset();
for (auto i = m_events.begin(); i != m_events.end(); ++i) {
Event::deleteData(i->second);
}
@ -92,9 +91,9 @@ void EventQueue::adoptBuffer(IEventQueueBuffer *buffer)
m_oldEventIDs.clear();
// use new buffer
m_buffer = buffer;
if (m_buffer == nullptr) {
m_buffer = new SimpleEventQueueBuffer;
m_buffer.reset(buffer);
if (buffer == nullptr) {
m_buffer = std::make_unique<SimpleEventQueueBuffer>();
}
}

View File

@ -14,6 +14,7 @@
#include "mt/CondVar.h"
#include <map>
#include <memory>
#include <queue>
#include <set>
@ -106,7 +107,7 @@ private:
ArchMutex m_mutex;
// buffer of events
IEventQueueBuffer *m_buffer = nullptr;
std::unique_ptr<IEventQueueBuffer> m_buffer;
// saved events
EventTable m_events;