[Scummvm-git-logs] scummvm master -> a55361b65d5b948cc5c42a386f4412b74bdd56c6
bluegr
noreply at scummvm.org
Sun Dec 18 21:36:11 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
a55361b65d COMMON: Add Common::Array::swap()
Commit: a55361b65d5b948cc5c42a386f4412b74bdd56c6
https://github.com/scummvm/scummvm/commit/a55361b65d5b948cc5c42a386f4412b74bdd56c6
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2022-12-18T23:36:09+02:00
Commit Message:
COMMON: Add Common::Array::swap()
Changed paths:
common/array.h
engines/ultima/shared/std/containers.h
test/common/array.h
diff --git a/common/array.h b/common/array.h
index bcdda8a9067..7e50f2cfec5 100644
--- a/common/array.h
+++ b/common/array.h
@@ -391,6 +391,12 @@ public:
*dst++ = *first++;
}
+ void swap(Array &arr) {
+ SWAP(this->_capacity, arr._capacity);
+ SWAP(this->_size, arr._size);
+ SWAP(this->_storage, arr._storage);
+ }
+
protected:
/** Round up capacity to the next power of 2.
* A minimal capacity of 8 is used.
diff --git a/engines/ultima/shared/std/containers.h b/engines/ultima/shared/std/containers.h
index 84b7d79dfc2..4e903e723c8 100644
--- a/engines/ultima/shared/std/containers.h
+++ b/engines/ultima/shared/std/containers.h
@@ -98,12 +98,6 @@ public:
resize(newSize, elem);
}
- void swap(vector &arr) {
- SWAP(this->_capacity, arr._capacity);
- SWAP(this->_size, arr._size);
- SWAP(this->_storage, arr._storage);
- }
-
reverse_iterator rbegin() {
return reverse_iterator(this, (int)Common::Array<T>::size() - 1);
}
@@ -143,17 +137,8 @@ class set {
return a == b;
}
};
-
- class Items : public Common::Array<T> {
- public:
- void swap(Items &arr) {
- SWAP(this->_capacity, arr._capacity);
- SWAP(this->_size, arr._size);
- SWAP(this->_storage, arr._storage);
- }
- };
private:
- Items _items;
+ Common::Array<T> _items;
Comparitor _comparitor;
public:
typedef T *iterator;
diff --git a/test/common/array.h b/test/common/array.h
index 56378c7beee..5cf352cad4b 100644
--- a/test/common/array.h
+++ b/test/common/array.h
@@ -418,6 +418,34 @@ class ArrayTestSuite : public CxxTest::TestSuite
TS_ASSERT_EQUALS(array[1], 163);
}
+ void test_swap() {
+ Common::Array<int> array1, array2;
+
+ array1.push_back(-3);
+ array1.push_back(163);
+ array1.push_back(17);
+ array2.push_back(5);
+ array2.push_back(9);
+
+ TS_ASSERT_EQUALS(array1.size(), 3);
+ TS_ASSERT_EQUALS(array1[0], -3);
+ TS_ASSERT_EQUALS(array1[1], 163);
+ TS_ASSERT_EQUALS(array1[2], 17);
+ TS_ASSERT_EQUALS(array2.size(), 2);
+ TS_ASSERT_EQUALS(array2[0], 5);
+ TS_ASSERT_EQUALS(array2[1], 9);
+
+ array1.swap(array2);
+
+ TS_ASSERT_EQUALS(array1.size(), 2);
+ TS_ASSERT_EQUALS(array1[0], 5);
+ TS_ASSERT_EQUALS(array1[1], 9);
+ TS_ASSERT_EQUALS(array2.size(), 3);
+ TS_ASSERT_EQUALS(array2[0], -3);
+ TS_ASSERT_EQUALS(array2[1], 163);
+ TS_ASSERT_EQUALS(array2[2], 17);
+ }
+
};
struct ListElement {
More information about the Scummvm-git-logs
mailing list