summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/tools/qarraydata.cpp11
-rw-r--r--src/corelib/tools/qarraydata.h14
-rw-r--r--src/corelib/tools/qarraydatapointer.h9
3 files changed, 8 insertions, 26 deletions
diff --git a/src/corelib/tools/qarraydata.cpp b/src/corelib/tools/qarraydata.cpp
index c6e96c78a9..150f23cc12 100644
--- a/src/corelib/tools/qarraydata.cpp
+++ b/src/corelib/tools/qarraydata.cpp
@@ -44,8 +44,9 @@
QT_BEGIN_NAMESPACE
const QArrayData QArrayData::shared_null = { Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, 0 };
-const QArrayData QArrayData::shared_empty = { Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, 0 };
-const QArrayData QArrayData::unsharable_empty = { { Q_BASIC_ATOMIC_INITIALIZER(0) }, 0, 0, 0, 0 };
+
+static const QArrayData qt_array_empty = { Q_REFCOUNT_INITIALIZE_STATIC, 0, 0, 0, 0 };
+static const QArrayData qt_array_unsharable_empty = { { Q_BASIC_ATOMIC_INITIALIZER(0) }, 0, 0, 0, 0 };
QArrayData *QArrayData::allocate(size_t objectSize, size_t alignment,
size_t capacity, bool reserve, bool sharable)
@@ -57,8 +58,8 @@ QArrayData *QArrayData::allocate(size_t objectSize, size_t alignment,
// Don't allocate empty headers
if (!capacity)
return sharable
- ? const_cast<QArrayData *>(&shared_empty)
- : const_cast<QArrayData *>(&unsharable_empty);
+ ? const_cast<QArrayData *>(&qt_array_empty)
+ : const_cast<QArrayData *>(&qt_array_unsharable_empty);
// Allocate extra (alignment - Q_ALIGNOF(QArrayData)) padding bytes so we
// can properly align the data array. This assumes malloc is able to
@@ -90,7 +91,7 @@ void QArrayData::deallocate(QArrayData *data, size_t objectSize,
&& !(alignment & (alignment - 1)));
Q_UNUSED(objectSize) Q_UNUSED(alignment)
- if (data == &unsharable_empty)
+ if (data == &qt_array_unsharable_empty)
return;
qFree(data);
diff --git a/src/corelib/tools/qarraydata.h b/src/corelib/tools/qarraydata.h
index 1fd60e2155..2486bebafa 100644
--- a/src/corelib/tools/qarraydata.h
+++ b/src/corelib/tools/qarraydata.h
@@ -79,8 +79,6 @@ struct Q_CORE_EXPORT QArrayData
size_t alignment);
static const QArrayData shared_null;
- static const QArrayData shared_empty;
- static const QArrayData unsharable_empty;
};
template <class T>
@@ -117,18 +115,6 @@ struct QTypedArrayData
return static_cast<QTypedArrayData *>(
const_cast<QArrayData *>(&QArrayData::shared_null));
}
-
- static QTypedArrayData *sharedEmpty()
- {
- return static_cast<QTypedArrayData *>(
- const_cast<QArrayData *>(&QArrayData::shared_empty));
- }
-
- static QTypedArrayData *unsharableEmpty()
- {
- return static_cast<QTypedArrayData *>(
- const_cast<QArrayData *>(&QArrayData::unsharable_empty));
- }
};
template <class T, size_t N>
diff --git a/src/corelib/tools/qarraydatapointer.h b/src/corelib/tools/qarraydatapointer.h
index e42d146c58..c03e2ef849 100644
--- a/src/corelib/tools/qarraydatapointer.h
+++ b/src/corelib/tools/qarraydatapointer.h
@@ -115,12 +115,7 @@ public:
void setSharable(bool sharable)
{
if (d->alloc == 0 && d->size == 0) {
- Q_ASSERT(Data::sharedNull() == d
- || Data::sharedEmpty() == d
- || Data::unsharableEmpty() == d);
- d = sharable
- ? Data::sharedEmpty()
- : Data::unsharableEmpty();
+ d = Data::allocate(0, false, sharable);
return;
}
@@ -136,7 +131,7 @@ public:
void clear()
{
QArrayDataPointer tmp(d);
- d = Data::sharedEmpty();
+ d = Data::allocate(0);
}
bool detach()