diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-06-24 22:07:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-24 22:07:54 +0200 |
commit | d4c9ae4c244508b7fc69d87bec3367384fe28e12 (patch) | |
tree | 9441d32585150ad73ef753f239a8abade43ea2fd | |
parent | ab932bb675f7966b94c46da76ca822ebbf24ddd2 (diff) | |
parent | 679bb882fc0f58df7fa002aa180b2ac574366af8 (diff) |
Merge pull request #30023 from Faless/crash/vector_resize
Fix PoolVector resize and subarray.
-rw-r--r-- | core/pool_vector.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/pool_vector.h b/core/pool_vector.h index 102a620f17..338de966f6 100644 --- a/core/pool_vector.h +++ b/core/pool_vector.h @@ -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) |