diff --git a/pub/trivia/vector_ops.cpp b/pub/trivia/vector_ops.cpp index af1dc8658a2fd1e2ad4c4d095c3c51e9c9040ff4..b03c308d949872cf6467025f7662571dcc41792d 100644 --- a/pub/trivia/vector_ops.cpp +++ b/pub/trivia/vector_ops.cpp @@ -89,15 +89,16 @@ vector<size_t> triv::sorted_indices(vector<double> const& V) } -//! Increments all members, or deletes them if they exceed the range 0...siz. +//! Increments all members, provided they remain in the range 0...siz. void triv::increment_indices( vector<int>& v, int incr, int siz ) { vector<int> ret; for( int k: v ){ int kout = k+incr; - if ( 0<=kout && kout<siz ) - ret.push_back( kout ); + if ( kout<0 || kout>=siz ) + return; // leave v unchanged + ret.push_back( kout ); } v = ret; }