summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qjsonarray.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-04-07 01:00:12 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-04-08 22:04:23 +0200
commitc937ed8af4f3dfef3fd8f8c2a9815376790dd5bf (patch)
tree5175aff87e160ae8f32dadc60d3cfd38b73d4fb1 /src/corelib/serialization/qjsonarray.cpp
parente0346df1b21cb30b54ae8d4918addc9925fa8479 (diff)
parent8823bb8d306d78dd6a2e121a708dc607beff58c8 (diff)
Merge "Merge remote-tracking branch 'origin/5.15' into dev"
Diffstat (limited to 'src/corelib/serialization/qjsonarray.cpp')
-rw-r--r--src/corelib/serialization/qjsonarray.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/corelib/serialization/qjsonarray.cpp b/src/corelib/serialization/qjsonarray.cpp
index 08702771a8e..05138ad6103 100644
--- a/src/corelib/serialization/qjsonarray.cpp
+++ b/src/corelib/serialization/qjsonarray.cpp
@@ -167,7 +167,11 @@ QJsonArray::QJsonArray(QCborContainerPrivate *array)
*/
void QJsonArray::initialize()
{
- a = nullptr;
+ // Because we're being called with uninitialized state, we can't do:
+ // a = nullptr;
+ // QExplicitlyDataSharedPointer::operator= will read the current value
+ void *ptr = &a;
+ memset(ptr, 0, sizeof(a));
}
/*!
@@ -177,7 +181,6 @@ QJsonArray::~QJsonArray() = default;
QJsonArray::QJsonArray(std::initializer_list<QJsonValue> args)
{
- initialize();
for (const auto & arg : args)
append(arg);
}