Browse Source

Merge pull request #30023 from Faless/crash/vector_resize

 Fix PoolVector resize and subarray.
Rémi Verschelde 6 years ago
parent
commit
d4c9ae4c24
1 changed files with 4 additions and 2 deletions
  1. 4 2
      core/pool_vector.h

+ 4 - 2
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)