diff --git a/src/corelib/tools/qarraydata.cpp b/src/corelib/tools/qarraydata.cpp index ef15fae83a..d9519745b0 100644 --- a/src/corelib/tools/qarraydata.cpp +++ b/src/corelib/tools/qarraydata.cpp @@ -103,7 +103,11 @@ QArrayData *QArrayData::allocate(size_t objectSize, size_t alignment, quintptr data = (quintptr(header) + sizeof(QArrayData) + alignment - 1) & ~(alignment - 1); +#if QT_SUPPORTS(UNSHARABLE_CONTAINERS) header->ref.atomic.store(bool(!(options & Unsharable))); +#else + header->ref.atomic.store(1); +#endif header->size = 0; header->alloc = capacity; header->capacityReserved = bool(options & CapacityReserved); diff --git a/src/corelib/tools/qarraydata.h b/src/corelib/tools/qarraydata.h index 95c1d5f22e..865bd4325d 100644 --- a/src/corelib/tools/qarraydata.h +++ b/src/corelib/tools/qarraydata.h @@ -249,11 +249,13 @@ struct QTypedArrayData return allocate(/* capacity */ 0); } +#if QT_SUPPORTS(UNSHARABLE_CONTAINERS) static QTypedArrayData *unsharableEmpty() { Q_STATIC_ASSERT(sizeof(QTypedArrayData) == sizeof(QArrayData)); return allocate(/* capacity */ 0, Unsharable); } +#endif }; template