Fix PoolVector resize and subarray.

The first used to accept negative values, the second would crash if out
of bound.
This commit is contained in:
Fabio Alessandrelli 2019-06-24 09:22:15 +02:00
parent 05a0a68c72
commit 679bb882fc

View file

@ -411,8 +411,8 @@ public:
p_to = size() + p_to;
}
CRASH_BAD_INDEX(p_from, size());
CRASH_BAD_INDEX(p_to, size());
ERR_FAIL_INDEX_V(p_from, size(), PoolVector<T>());
ERR_FAIL_INDEX_V(p_to, size(), PoolVector<T>());
PoolVector<T> slice;
int span = 1 + p_to - p_from;
@ -511,6 +511,8 @@ const T PoolVector<T>::operator[](int p_index) const {
template <class T>
Error PoolVector<T>::resize(int p_size) {
ERR_FAIL_COND_V(p_size < 0, ERR_INVALID_PARAMETER);
if (alloc == NULL) {
if (p_size == 0)