From 8b4e1020f47ea9e52a13ecca36d4085bb7de15e8 Mon Sep 17 00:00:00 2001 From: Noel Eck Date: Wed, 23 May 2018 20:52:57 -0700 Subject: [PATCH] nmea_gps: Fix iterator Small fixes for new nmea_gps code. Fixed an iterator which could get dereferenced incorrectly, and changed an auto to an explicit type. Signed-off-by: Noel Eck --- src/nmea_gps/nmea_gps.cxx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/nmea_gps/nmea_gps.cxx b/src/nmea_gps/nmea_gps.cxx index b6dbce58..aeaf9f29 100644 --- a/src/nmea_gps/nmea_gps.cxx +++ b/src/nmea_gps/nmea_gps.cxx @@ -234,7 +234,7 @@ void NMEAGPS::_parse_gpgsv(const std::string& sentence) /* Add to the back of satmap, remove any matching prn */ _mtx_satlist.lock(); auto sit = _satlist.begin(); - do + while(sit != _satlist.end()) { /* Remove */ if ((*sit).prn == sat.prn) @@ -242,7 +242,8 @@ void NMEAGPS::_parse_gpgsv(const std::string& sentence) sit = _satlist.erase(sit); break; } - } while(++sit != _satlist.end()); + ++sit; + } /* Add satellite to the end */ _satlist.push_back(sat); @@ -458,7 +459,7 @@ std::string satellite::__str__() std::string NMEAGPS::__str__() { std::ostringstream oss; - auto sats = satellites(); + std::vector sats = satellites(); size_t qsz = getMaxQueueDepth(); oss << "NMEA GPS Instance" << std::endl << " Parsing: " << (isRunning() ? "T" : "F") << std::endl