From f1f51c9cfcea9e8b277b11948a300ecb8a6d4a11 Mon Sep 17 00:00:00 2001
From: Adrian Knobloch <adrian.knobloch@student.kit.edu>
Date: Fri, 9 Sep 2016 16:20:17 +0200
Subject: [PATCH] Fix clearing outdated values in history; again...

---
 .../KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp       | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp
index a847c5f16..3dfed33e5 100644
--- a/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp
+++ b/source/RobotAPI/gui-plugins/KinematicUnitPlugin/KinematicUnitGuiPlugin.cpp
@@ -1168,14 +1168,13 @@ void KinematicUnitWidgetController::reportControlModeChanged(const NameControlMo
 
 void KinematicUnitWidgetController::reportJointCurrents(const NameValueMap& jointCurrents, Ice::Long timestamp, bool aValueChanged, const Ice::Current& c)
 {
-    if (!aValueChanged && jointCurrents.size() > 0)
+    boost::recursive_mutex::scoped_lock lock(mutexNodeSet);
+    if (aValueChanged && jointCurrents.size() > 0)
     {
-        return;
+        jointCurrentHistory.push_back(std::pair<Ice::Long, NameValueMap>(timestamp, jointCurrents));
     }
 
-    boost::recursive_mutex::scoped_lock lock(mutexNodeSet);
-    jointCurrentHistory.push_back(std::pair<Ice::Long, NameValueMap>(timestamp, jointCurrents));
-    if (jointCurrentHistory.back().first - jointCurrentHistory.front().first > historyTime)
+    while (jointCurrentHistory.back().first - jointCurrentHistory.front().first > historyTime && jointCurrentHistory.size() > 1)
     {
         jointCurrentHistory.pop_front();
     }
-- 
GitLab