c70257e9b2
There's enough space in the LSB of the three pointers to encode the type. Saves sizeof(void*) in the Private class, but, more importantly, paves the way for the next patch to get rid of the Private class and its memory allocation altogether, turning QEventLoopLocker::d_ptr into what this patch still calls QEventLoopLockerPrivate::p. Neither QTaggedPointer nor QML's QBiPointer apply here. QTaggedPointer only supports a single T, plus flags; QBiPointer supports only two Ts, and one flag; we need three Ts and no flags. This could be a QVariantPointer<QEventLoopPrivate, QCoreApplicationPriivate*, QThreadPrivate*> I'm thinking about it; just would want to find a second use-case for it. Task-number: QTBUG-114793 Pick-to: 6.6 Change-Id: I0e21bd8745cc75a9c04b71343c398ad953283857 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> |
||
---|---|---|
.github/workflows | ||
bin | ||
cmake | ||
coin | ||
config.tests | ||
dist | ||
doc | ||
examples | ||
lib | ||
libexec | ||
LICENSES | ||
mkspecs | ||
qmake | ||
src | ||
tests | ||
util | ||
.cmake.conf | ||
.gitattributes | ||
.gitignore | ||
.lgtm.yml | ||
.tag | ||
CMakeLists.txt | ||
config_help.txt | ||
configure | ||
configure.bat | ||
configure.cmake | ||
dependencies.yaml | ||
qt_cmdline.cmake | ||
sync.profile |