cmAlgorithms: Add early return in cmRemoveIndices.
Avoid derefencing the iterator and segfaulting if the range is empty.
This commit is contained in:
parent
1a8e4c8692
commit
3ff95f3b0b
|
@ -237,6 +237,11 @@ typename Range::const_iterator cmRemoveIndices(Range& r, InputRange const& rem)
|
|||
{
|
||||
typename InputRange::const_iterator remIt = rem.begin();
|
||||
typename InputRange::const_iterator remEnd = rem.end();
|
||||
const typename Range::iterator rangeEnd = r.end();
|
||||
if (remIt == remEnd)
|
||||
{
|
||||
return rangeEnd;
|
||||
}
|
||||
|
||||
typename Range::iterator writer = r.begin();
|
||||
std::advance(writer, *remIt);
|
||||
|
@ -244,7 +249,6 @@ typename Range::const_iterator cmRemoveIndices(Range& r, InputRange const& rem)
|
|||
typename InputRange::value_type prevRem = *remIt;
|
||||
++remIt;
|
||||
size_t count = 1;
|
||||
const typename Range::iterator rangeEnd = r.end();
|
||||
for ( ; writer != rangeEnd && remIt != remEnd; ++count, ++remIt)
|
||||
{
|
||||
std::advance(pivot, *remIt - prevRem);
|
||||
|
|
Loading…
Reference in New Issue