| @@ -871,10 +871,11 @@ public: | |||||
| auto endIndex = jlimit (0, values.size(), startIndex + numberToRemove); | auto endIndex = jlimit (0, values.size(), startIndex + numberToRemove); | ||||
| startIndex = jlimit (0, values.size(), startIndex); | startIndex = jlimit (0, values.size(), startIndex); | ||||
| numberToRemove = endIndex - startIndex; | |||||
| if (endIndex > startIndex) | |||||
| if (numberToRemove > 0) | |||||
| { | { | ||||
| values.removeElements (startIndex, endIndex - startIndex); | |||||
| values.removeElements (startIndex, numberToRemove); | |||||
| minimiseStorageAfterRemoval(); | minimiseStorageAfterRemoval(); | ||||
| } | } | ||||
| } | } | ||||
| @@ -606,7 +606,7 @@ public: | |||||
| startIndex = jlimit (0, values.size(), startIndex); | startIndex = jlimit (0, values.size(), startIndex); | ||||
| numberToRemove = endIndex - startIndex; | numberToRemove = endIndex - startIndex; | ||||
| if (endIndex > startIndex) | |||||
| if (numberToRemove > 0) | |||||
| { | { | ||||
| if (deleteObjects) | if (deleteObjects) | ||||
| { | { | ||||
| @@ -650,12 +650,13 @@ public: | |||||
| int numberToRemove) | int numberToRemove) | ||||
| { | { | ||||
| const ScopedLockType lock (getLock()); | const ScopedLockType lock (getLock()); | ||||
| auto start = jlimit (0, values.size(), startIndex); | |||||
| startIndex = jlimit (0, values.size(), startIndex); | |||||
| auto endIndex = jlimit (0, values.size(), startIndex + numberToRemove); | auto endIndex = jlimit (0, values.size(), startIndex + numberToRemove); | ||||
| numberToRemove = endIndex - startIndex; | |||||
| if (endIndex > start) | |||||
| if (numberToRemove > 0) | |||||
| { | { | ||||
| for (int i = start; i < endIndex; ++i) | |||||
| for (int i = startIndex; i < endIndex; ++i) | |||||
| { | { | ||||
| releaseObject (values[i]); | releaseObject (values[i]); | ||||
| values[i] = nullptr; // (in case one of the destructors accesses this array and hits a dangling pointer) | values[i] = nullptr; // (in case one of the destructors accesses this array and hits a dangling pointer) | ||||