From 752475ef5f39cadd988a5e97203e5374522be8ed Mon Sep 17 00:00:00 2001 From: john30 Date: Sat, 12 Dec 2015 17:57:43 +0100 Subject: [PATCH] fixed cache invalidation --- src/ebusd/bushandler.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ebusd/bushandler.cpp b/src/ebusd/bushandler.cpp index e49de79f..a4b6e5b5 100644 --- a/src/ebusd/bushandler.cpp +++ b/src/ebusd/bushandler.cpp @@ -762,6 +762,12 @@ void BusHandler::receiveCompleted() logNotice(lf_update, "unknown MS cmd: %s / %s", m_command.getDataStr().c_str(), m_response.getDataStr().c_str()); } else { + messages.pop_front(); + while (messages.size()>0) { + Message* invalidate = messages.front(); + m_messages->invalidateCache(invalidate); + messages.pop_front(); + } string circuit = message->getCircuit(); string name = message->getName(); ostringstream output; @@ -783,12 +789,6 @@ void BusHandler::receiveCompleted() logNotice(lf_update, "update %s %s QQ=%2.2x: %s", circuit.c_str(), name.c_str(), srcAddress, data.c_str()); else logNotice(lf_update, "update %s %s: %s", circuit.c_str(), name.c_str(), data.c_str()); - messages.pop_front(); - } - while (messages.size()>0) { - message = messages.front(); - m_messages->invalidateCache(message); - messages.pop_front(); } } }