mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Fixed a bug limiting the extent of removeRange in ReferenceCountedArray
This commit is contained in:
parent
9fd0e53d3c
commit
bd211ce7df
3 changed files with 8 additions and 6 deletions
|
|
@ -871,10 +871,11 @@ public:
|
|||
|
||||
auto endIndex = jlimit (0, values.size(), startIndex + numberToRemove);
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -606,7 +606,7 @@ public:
|
|||
startIndex = jlimit (0, values.size(), startIndex);
|
||||
numberToRemove = endIndex - startIndex;
|
||||
|
||||
if (endIndex > startIndex)
|
||||
if (numberToRemove > 0)
|
||||
{
|
||||
if (deleteObjects)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -650,12 +650,13 @@ public:
|
|||
int numberToRemove)
|
||||
{
|
||||
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);
|
||||
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]);
|
||||
values[i] = nullptr; // (in case one of the destructors accesses this array and hits a dangling pointer)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue