Browse Source

Merge pull request #90631 from AThousandShips/array_iter_fix

[Core] Fix incorrect comparison for `Array` const iterator
Rémi Verschelde 1 year ago
parent
commit
578d937927
2 changed files with 5 additions and 1 deletions
  1. 1 1
      core/variant/array.h
  2. 4 0
      tests/core/variant/test_array.h

+ 1 - 1
core/variant/array.h

@@ -54,7 +54,7 @@ public:
 		_FORCE_INLINE_ ConstIterator &operator--();
 
 		_FORCE_INLINE_ bool operator==(const ConstIterator &p_other) const { return element_ptr == p_other.element_ptr; }
-		_FORCE_INLINE_ bool operator!=(const ConstIterator &p_other) const { return element_ptr == p_other.element_ptr; }
+		_FORCE_INLINE_ bool operator!=(const ConstIterator &p_other) const { return element_ptr != p_other.element_ptr; }
 
 		_FORCE_INLINE_ ConstIterator(const Variant *p_element_ptr, Variant *p_read_only = nullptr) :
 				element_ptr(p_element_ptr), read_only(p_read_only) {}

+ 4 - 0
tests/core/variant/test_array.h

@@ -555,6 +555,8 @@ TEST_CASE("[Array] Iteration") {
 		idx++;
 	}
 
+	CHECK_EQ(idx, a1.size());
+
 	idx = 0;
 
 	for (const Variant &E : (const Array &)a1) {
@@ -562,6 +564,8 @@ TEST_CASE("[Array] Iteration") {
 		idx++;
 	}
 
+	CHECK_EQ(idx, a1.size());
+
 	a1.clear();
 }