Browse Source

Added an assertion in Array::removeLast

tags/2021-05-28
jules 7 years ago
parent
commit
172c580200
1 changed files with 14 additions and 9 deletions
  1. +14
    -9
      modules/juce_core/containers/juce_Array.h

+ 14
- 9
modules/juce_core/containers/juce_Array.h View File

@@ -981,7 +981,7 @@ public:
@see remove, removeRange, removeAllInstancesOf @see remove, removeRange, removeAllInstancesOf
*/ */
template <typename PredicateType> template <typename PredicateType>
int removeIf (PredicateType predicate)
int removeIf (PredicateType&& predicate)
{ {
int numRemoved = 0; int numRemoved = 0;
const ScopedLockType lock (getLock()); const ScopedLockType lock (getLock());
@@ -1040,17 +1040,22 @@ public:
@see remove, removeFirstMatchingValue, removeAllInstancesOf, removeRange @see remove, removeFirstMatchingValue, removeAllInstancesOf, removeRange
*/ */
void removeLast (int howManyToRemove = 1) void removeLast (int howManyToRemove = 1)
{
const ScopedLockType lock (getLock());
{
jassert (howManyToRemove >= 0);

if (howManyToRemove > 0)
{
const ScopedLockType lock (getLock());
if (howManyToRemove > numUsed)
howManyToRemove = numUsed;
if (howManyToRemove > numUsed)
howManyToRemove = numUsed;
for (int i = 1; i <= howManyToRemove; ++i)
data.elements[numUsed - i].~ElementType();
for (int i = 1; i <= howManyToRemove; ++i)
data.elements[numUsed - i].~ElementType();
numUsed -= howManyToRemove;
minimiseStorageAfterRemoval();
numUsed -= howManyToRemove;
minimiseStorageAfterRemoval();
}
} }
/** Removes any elements which are also in another array. /** Removes any elements which are also in another array.


Loading…
Cancel
Save