From a2eaf403fffea1150d5a486929023a7d4752166b Mon Sep 17 00:00:00 2001 From: Antonio Ramos Date: Wed, 21 Feb 2018 13:12:45 +0100 Subject: [PATCH] Avoid acces to a out of range value --- .../gnuradio_blocks/hybrid_observables_cc.cc | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc index 92a308356..19b0e89ba 100644 --- a/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc +++ b/src/algorithms/observables/gnuradio_blocks/hybrid_observables_cc.cc @@ -369,21 +369,30 @@ std::pair hybrid_observables_cc::find_closest(std::d } aux++; } - delta_t = T_rx_s - data.at(index).RX_time; - if((index == (data.size() - 1)) or (delta_t < 0.0)) + try { - result.first = data.at(index); - result.second = data.at(index - 1); + delta_t = T_rx_s - data.at(index).RX_time; + if(index == 0) + { + result.first = data.at(1); + result.second = data.at(0); + } + else if((index == (data.size() - 1)) or (delta_t < 0.0)) + { + result.first = data.at(index); + result.second = data.at(index - 1); + } + else + { + result.first = data.at(index + 1); + result.second = data.at(index); + } } - else if(index == 0) + catch(const std::exception& e) { - result.first = data.at(1); - result.second = data.at(0); - } - else - { - result.first = data.at(index + 1); - result.second = data.at(index); + result.first = Gnss_Synchro(); + result.second = Gnss_Synchro(); + LOG(WARNING) << e.what(); } return result; }