diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2022-07-22 16:32:46 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-07-27 14:51:11 -0700 |
commit | de7894ce3c60154cd3c44640c1734c6988d2afea (patch) | |
tree | a5d7d30daf29a1360ae60acec36a4ac87416c632 /src/corelib/compat/removed_api.cpp | |
parent | 211f13b089383a84098093f7005eb71f1adfc5e5 (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.cpp | 20 |
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) |