summaryrefslogtreecommitdiffstats
path: root/src/corelib/compat/removed_api.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-07-22 16:32:46 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-07-27 14:51:11 -0700
commitde7894ce3c60154cd3c44640c1734c6988d2afea (patch)
treea5d7d30daf29a1360ae60acec36a4ac87416c632 /src/corelib/compat/removed_api.cpp
parent211f13b089383a84098093f7005eb71f1adfc5e5 (diff)
QVariant: update constructors for trivially copyable types
Make them all noexcept and ensure they are all passed by value. Unfortunately for QRectF and QLineF, they're too big when qreal==double, so QVariant needs to allocate memory itself. Strictly speaking, they're too big for passing by value too, but the codegen is identical, so we may as well. For Qt 7, enlarging QVariant::Private would be a good idea. Change-Id: I3859764fed084846bcb0fffd17044ac379b3c1d2 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@gmail.com>
Diffstat (limited to 'src/corelib/compat/removed_api.cpp')
-rw-r--r--src/corelib/compat/removed_api.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/corelib/compat/removed_api.cpp b/src/corelib/compat/removed_api.cpp
index 3401cf9c0c..2b864ad41f 100644
--- a/src/corelib/compat/removed_api.cpp
+++ b/src/corelib/compat/removed_api.cpp
@@ -293,6 +293,26 @@ int QMetaType::idHelper() const
return registerHelper(d_ptr);
}
+#include "qvariant.h"
+
+// these implementations aren't as efficient as they used to be prior to
+// replacement, but there's no way to call the ambiguous overload
+QVariant::QVariant(const QUuid &uuid) : QVariant(QVariant::fromValue(uuid)) {}
+#ifndef QT_NO_GEOM_VARIANT
+#include "qline.h"
+#include "qpoint.h"
+#include "qrect.h"
+#include "qsize.h"
+QVariant::QVariant(const QPoint &pt) : QVariant(QVariant::fromValue(pt)) {}
+QVariant::QVariant(const QPointF &pt) : QVariant(QVariant::fromValue(pt)) {}
+QVariant::QVariant(const QRect &r) : QVariant(QVariant::fromValue(r)) {}
+QVariant::QVariant(const QRectF &r) : QVariant(QVariant::fromValue(r)) {}
+QVariant::QVariant(const QLine &l) : QVariant(QVariant::fromValue(l)) {}
+QVariant::QVariant(const QLineF &l) : QVariant(QVariant::fromValue(l)) {}
+QVariant::QVariant(const QSize &s) : QVariant(QVariant::fromValue(s)) {}
+QVariant::QVariant(const QSizeF &s) : QVariant(QVariant::fromValue(s)) {}
+#endif
+
#include "qxmlstream.h"
QXmlStreamReader::QXmlStreamReader(const QByteArray &data)