summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qvariant.cpp
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2022-07-25 09:37:19 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2022-07-27 23:51:17 +0200
commit708e4ea23561e28f4032a74eda7e74998087acf2 (patch)
treedd09d8fb62a0119531b8cd7ec3f79e2e36297eab /src/corelib/kernel/qvariant.cpp
parent2f0a625fd4036b71286dfa7de4c9d795025164e7 (diff)
QVariant: prepare removal of nullptr_t special casing in Qt 7
customConstruct has to do an additional check to ensure that QVariant::fromValue(nullptr) returns null. We can get rid of it by special casing nullptr_t in a fromValue overload instead, reducing the amount of work that needs to happen at runtime. Change-Id: I2aea6aecfee0a9404cbd78dbea01a1d5d3047ca0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qvariant.cpp')
-rw-r--r--src/corelib/kernel/qvariant.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index 61ea0dd8e7..aee2e757db 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -250,7 +250,8 @@ static void customConstruct(const QtPrivate::QMetaTypeInterface *iface, QVariant
// need to check for nullptr_t here, as this can get called by fromValue(nullptr). fromValue() uses
// std::addressof(value) which in this case returns the address of the nullptr object.
- d->is_null = !copy || isInterfaceFor<std::nullptr_t>(iface);
+ // ### Qt 7: remove nullptr_t special casing
+ d->is_null = !copy QT6_ONLY(|| isInterfaceFor<std::nullptr_t>(iface));
void *dst;
if (QVariant::Private::canUseInternalSpace(iface)) {