8312395: Improve assertions in growableArray

Reviewed-by: dholmes, stuefe
This commit is contained in:
Matthias Baesken 2023-07-20 15:06:59 +00:00
parent 9fa944e63f
commit b772e67e29

View File

@ -142,17 +142,17 @@ public:
}
E& at(int i) {
assert(0 <= i && i < _len, "illegal index");
assert(0 <= i && i < _len, "illegal index %d for length %d", i, _len);
return _data[i];
}
E const& at(int i) const {
assert(0 <= i && i < _len, "illegal index");
assert(0 <= i && i < _len, "illegal index %d for length %d", i, _len);
return _data[i];
}
E* adr_at(int i) const {
assert(0 <= i && i < _len, "illegal index");
assert(0 <= i && i < _len, "illegal index %d for length %d", i, _len);
return &_data[i];
}
@ -184,7 +184,7 @@ public:
}
void at_put(int i, const E& elem) {
assert(0 <= i && i < _len, "illegal index");
assert(0 <= i && i < _len, "illegal index %d for length %d", i, _len);
_data[i] = elem;
}
@ -245,7 +245,7 @@ public:
}
void remove_at(int index) {
assert(0 <= index && index < _len, "illegal index");
assert(0 <= index && index < _len, "illegal index %d for length %d", index, _len);
for (int j = index + 1; j < _len; j++) {
_data[j-1] = _data[j];
}
@ -259,8 +259,8 @@ public:
// Remove all elements in the range [start - end). The order is preserved.
void remove_range(int start, int end) {
assert(0 <= start, "illegal index");
assert(start < end && end <= _len, "erase called with invalid range");
assert(0 <= start, "illegal start index %d", start);
assert(start < end && end <= _len, "erase called with invalid range (%d, %d) for length %d", start, end, _len);
for (int i = start, j = end; j < length(); i++, j++) {
at_put(i, at(j));
@ -270,7 +270,7 @@ public:
// The order is changed.
void delete_at(int index) {
assert(0 <= index && index < _len, "illegal index");
assert(0 <= index && index < _len, "illegal index %d for length %d", index, _len);
if (index < --_len) {
// Replace removed element with last one.
_data[index] = _data[_len];
@ -403,7 +403,7 @@ public:
void push(const E& elem) { append(elem); }
E at_grow(int i, const E& fill = E()) {
assert(0 <= i, "negative index");
assert(0 <= i, "negative index %d", i);
if (i >= this->_len) {
if (i >= this->_capacity) grow(i);
for (int j = this->_len; j <= i; j++)
@ -414,7 +414,7 @@ public:
}
void at_put_grow(int i, const E& elem, const E& fill = E()) {
assert(0 <= i, "negative index");
assert(0 <= i, "negative index %d", i);
if (i >= this->_len) {
if (i >= this->_capacity) grow(i);
for (int j = this->_len; j < i; j++)
@ -426,7 +426,7 @@ public:
// inserts the given element before the element at index i
void insert_before(const int idx, const E& elem) {
assert(0 <= idx && idx <= this->_len, "illegal index");
assert(0 <= idx && idx <= this->_len, "illegal index %d for length %d", idx, this->_len);
if (this->_len == this->_capacity) grow(this->_len);
for (int j = this->_len - 1; j >= idx; j--) {
this->_data[j + 1] = this->_data[j];
@ -436,7 +436,7 @@ public:
}
void insert_before(const int idx, const GrowableArrayView<E>* array) {
assert(0 <= idx && idx <= this->_len, "illegal index");
assert(0 <= idx && idx <= this->_len, "illegal index %d for length %d", idx, this->_len);
int array_len = array->length();
int new_len = this->_len + array_len;
if (new_len >= this->_capacity) grow(new_len);