utility: Fixed message buffer might become empty while applying message filters

This commit is contained in:
Eberhard Graether
2017-05-15 11:31:10 +02:00
parent 9937b9beeb
commit 0d244b0224
3 changed files with 15 additions and 5 deletions
+5 -5
View File
@@ -216,13 +216,13 @@ void MessageQueue::processMessages()
{
std::lock_guard<std::mutex> lock(m_messageBufferMutex);
if (!m_messageBuffer.size())
{
break;
}
for (std::shared_ptr<MessageFilter> filter : m_filters)
{
if (!m_messageBuffer.size())
{
break;
}
filter->filter(&m_messageBuffer);
}
@@ -10,6 +10,11 @@ class MessageFilterFocusInOut
{
void filter(MessageQueue::MessageBufferType* messageBuffer) override
{
if (messageBuffer->size() < 2)
{
return;
}
MessageBase* message = messageBuffer->front().get();
if (message->getType() == MessageFocusIn::getStaticType())
{
@@ -9,6 +9,11 @@ class MessageFilterSearchAutocomplete
{
void filter(MessageQueue::MessageBufferType* messageBuffer) override
{
if (messageBuffer->size() < 2)
{
return;
}
MessageBase* message = messageBuffer->front().get();
if (message->getType() == MessageSearchAutocomplete::getStaticType())
{