30a0787907
The rewrite using CBOR internals replaced one of the two naked pointers that were members of QJsonArray and QJsonObject with a QExplicitlySharedDataPointer. The problem is that its operator= will read the current value to decrement the refcount and possibly delete the pointed object. But QJson{Array,Object}::initialize() are called from inlined code, without initialization. So we can't call operator=. We need to memcpy to write a nullptr. This is not unit-testable because it requires compiling against 5.14 or earlier, then running against 5.15. Fixes: QTBUG-82700 Change-Id: Iaa63461109844e978376fffd15f98c62656d197c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> |
||
---|---|---|
bin | ||
config.tests | ||
dist | ||
doc | ||
examples | ||
lib | ||
mkspecs | ||
qmake | ||
src | ||
tests | ||
util | ||
.gitattributes | ||
.gitignore | ||
.qmake.conf | ||
.tag | ||
config_help.txt | ||
configure | ||
configure.bat | ||
configure.json | ||
configure.pri | ||
header.BSD | ||
header.COMM | ||
header.FDL | ||
header.GPL | ||
header.GPL-EXCEPT | ||
header.LGPL | ||
header.LGPL3 | ||
header.LGPL3-COMM | ||
header.LGPL-NOGPL2 | ||
header.LGPL-ONLY | ||
header.MIT | ||
INSTALL | ||
LICENSE.FDL | ||
LICENSE.GPL2 | ||
LICENSE.GPL3 | ||
LICENSE.GPL3-EXCEPT | ||
LICENSE.LGPL3 | ||
LICENSE.LGPLv3 | ||
LICENSE.QT-LICENSE-AGREEMENT | ||
qtbase.pro | ||
sync.profile |