summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2012-06-11 21:26:23 +0200
committerLars Knoll <lars.knoll@qt.io>2019-12-08 10:29:17 +0100
commit812a611dc05e5facd036856625ccb9274fdcb117 (patch)
tree06151f35165e3b2ae614d21be65e4555e19f45e7 /tests/auto/corelib/tools
parent62c673ccc6f81cee09a25f5acceec2768cea4672 (diff)
Stop using the reference counter to store data state
Instead of using the reference count to store whether the data is sharable and whether the header is immutable, move the settings to the flags member. This allows us to save one comparison per deref() or needsDetach(). It also allows for the possibility of mutable data pointed to by a static header. Change-Id: Ie678a2ff2bb9bce73497cb6138b431c465b0f3bb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp36
1 files changed, 18 insertions, 18 deletions
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index b8bf9f4106..44066e29a1 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -84,42 +84,42 @@ void tst_QArrayData::referenceCounting()
{
{
// Reference counting initialized to 1 (owned)
- QArrayData array = { { Q_BASIC_ATOMIC_INITIALIZER(1) }, QArrayData::DefaultRawFlags, 0, 0, 0 };
+ QArrayData array = { Q_BASIC_ATOMIC_INITIALIZER(1), QArrayData::DefaultRawFlags, 0, 0, 0 };
- QCOMPARE(array.ref_.atomic.loadRelaxed(), 1);
+ QCOMPARE(array.ref_.loadRelaxed(), 1);
QVERIFY(!array.isStatic());
QVERIFY(array.ref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), 2);
+ QCOMPARE(array.ref_.loadRelaxed(), 2);
QVERIFY(array.deref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), 1);
+ QCOMPARE(array.ref_.loadRelaxed(), 1);
QVERIFY(array.ref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), 2);
+ QCOMPARE(array.ref_.loadRelaxed(), 2);
QVERIFY(array.deref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), 1);
+ QCOMPARE(array.ref_.loadRelaxed(), 1);
QVERIFY(!array.deref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), 0);
+ QCOMPARE(array.ref_.loadRelaxed(), 0);
// Now would be a good time to free/release allocated data
}
{
// Reference counting initialized to -1 (static read-only data)
- QArrayData array = { Q_REFCOUNT_INITIALIZE_STATIC, QArrayData::StaticDataFlags, 0, 0, 0 };
+ QArrayData array = { Q_BASIC_ATOMIC_INITIALIZER(-1), QArrayData::StaticDataFlags, 0, 0, 0 };
- QCOMPARE(array.ref_.atomic.loadRelaxed(), -1);
+ QCOMPARE(array.ref_.loadRelaxed(), -1);
QVERIFY(array.isStatic());
QVERIFY(array.ref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), -1);
+ QCOMPARE(array.ref_.loadRelaxed(), -1);
QVERIFY(array.deref());
- QCOMPARE(array.ref_.atomic.loadRelaxed(), -1);
+ QCOMPARE(array.ref_.loadRelaxed(), -1);
}
}
@@ -135,17 +135,17 @@ void tst_QArrayData::sharedNullEmpty()
QVERIFY(empty->isStatic());
QVERIFY(empty->isShared());
- QCOMPARE(null->ref_.atomic.loadRelaxed(), -1);
- QCOMPARE(empty->ref_.atomic.loadRelaxed(), -1);
+ QCOMPARE(null->ref_.loadRelaxed(), -1);
+ QCOMPARE(empty->ref_.loadRelaxed(), -1);
- QCOMPARE(null->ref_.atomic.loadRelaxed(), -1);
- QCOMPARE(empty->ref_.atomic.loadRelaxed(), -1);
+ QCOMPARE(null->ref_.loadRelaxed(), -1);
+ QCOMPARE(empty->ref_.loadRelaxed(), -1);
QVERIFY(null->deref());
QVERIFY(empty->deref());
- QCOMPARE(null->ref_.atomic.loadRelaxed(), -1);
- QCOMPARE(empty->ref_.atomic.loadRelaxed(), -1);
+ QCOMPARE(null->ref_.loadRelaxed(), -1);
+ QCOMPARE(empty->ref_.loadRelaxed(), -1);
QVERIFY(null != empty);
@@ -1247,7 +1247,7 @@ void fromRawData_impl()
{
// Default: Immutable, sharable
SimpleVector<T> raw = SimpleVector<T>::fromRawData(array,
- sizeof(array)/sizeof(array[0]), QArrayData::DefaultAllocationFlags);
+ sizeof(array)/sizeof(array[0]), QArrayData::DefaultRawFlags);
QCOMPARE(raw.size(), size_t(11));
QCOMPARE((const T *)raw.constBegin(), array);