Fix undefined pointer arithmetic for reverse() and unique() in case the range is empty (begin == end)
git-svn-id: http://pugixml.googlecode.com/svn/trunk@926 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
parent
973296bcb1
commit
43f3888dc1
@ -5479,13 +5479,13 @@ PUGI__NS_BEGIN
|
||||
|
||||
template <typename I> void reverse(I begin, I end)
|
||||
{
|
||||
while (begin + 1 < end) swap(*begin++, *--end);
|
||||
while (end - begin > 1) swap(*begin++, *--end);
|
||||
}
|
||||
|
||||
template <typename I> I unique(I begin, I end)
|
||||
{
|
||||
// fast skip head
|
||||
while (begin + 1 < end && *begin != *(begin + 1)) begin++;
|
||||
while (end - begin > 1 && *begin != *(begin + 1)) begin++;
|
||||
|
||||
if (begin == end) return begin;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user