From 1cd471873f8e4f316da014a0a3759e46310f0021 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Tue, 15 Aug 2017 23:50:47 +0100 Subject: [PATCH] T37 T133 removeOutdatedParts shall always preserve one outdated parts to make sure there is enough information to reliably interpolate. --- src/blackmisc/simulation/remoteaircraftprovider.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blackmisc/simulation/remoteaircraftprovider.cpp b/src/blackmisc/simulation/remoteaircraftprovider.cpp index 6dd38d6fc..5ae8b6559 100644 --- a/src/blackmisc/simulation/remoteaircraftprovider.cpp +++ b/src/blackmisc/simulation/remoteaircraftprovider.cpp @@ -126,10 +126,10 @@ namespace BlackMisc void IRemoteAircraftProvider::removeOutdatedParts(CAircraftPartsList &partsList) { - // remove outdated parts (but never remove the most recent one) + // remove all outdated parts but one const auto predicate = [now = partsList.front().getMSecsSinceEpoch()](const auto & p) { return p.getMSecsSinceEpoch() >= now - PartsPerCallsignMaxAgeInSeconds * 1000; }; const auto newEnd = std::find_if(partsList.rbegin(), partsList.rend(), predicate).base(); - partsList.erase(newEnd, partsList.end()); + if (newEnd != partsList.end()) { partsList.erase(newEnd + 1, partsList.end()); } } } // namespace } // namespace