summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2018-05-31 22:45:56 -0700
committerThiago Macieira <thiago.macieira@intel.com>2018-07-04 03:04:26 +0000
commitbcaa3cd9d65adb022a7e5034f2cde054a0ba7f75 (patch)
tree5812006608822e72f3ee85f412be227139eb0c7c /src/corelib/serialization
parent2bb44414ff456873c885391e4a03afb67e7306da (diff)
QCborValue: implement move semantics for QCbor{Array,Map} constructors
Happens a lot because of the implicit conversions. So I made it inline. Change-Id: Icc2c231dc2c44abdb087fffd1533f311b95460b8 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/serialization')
-rw-r--r--src/corelib/serialization/qcborarray.h5
-rw-r--r--src/corelib/serialization/qcbormap.h5
-rw-r--r--src/corelib/serialization/qcborvalue.h2
3 files changed, 12 insertions, 0 deletions
diff --git a/src/corelib/serialization/qcborarray.h b/src/corelib/serialization/qcborarray.h
index 0be362480c..218fa8e133 100644
--- a/src/corelib/serialization/qcborarray.h
+++ b/src/corelib/serialization/qcborarray.h
@@ -264,6 +264,11 @@ private:
Q_DECLARE_SHARED(QCborArray)
+inline QCborValue::QCborValue(QCborArray &&a)
+ : n(-1), container(a.d.take()), t(Array)
+{
+}
+
inline QCborArray QCborValueRef::toArray() const
{
return concrete().toArray();
diff --git a/src/corelib/serialization/qcbormap.h b/src/corelib/serialization/qcbormap.h
index 89de3d6786..e61e8a60e1 100644
--- a/src/corelib/serialization/qcbormap.h
+++ b/src/corelib/serialization/qcbormap.h
@@ -322,6 +322,11 @@ private:
Q_DECLARE_SHARED(QCborMap)
+inline QCborValue::QCborValue(QCborMap &&m)
+ : n(-1), container(m.d.take()), t(Map)
+{
+}
+
inline QCborMap QCborValueRef::toMap() const
{
return concrete().toMap();
diff --git a/src/corelib/serialization/qcborvalue.h b/src/corelib/serialization/qcborvalue.h
index d2adc0a88b..b7280dd35f 100644
--- a/src/corelib/serialization/qcborvalue.h
+++ b/src/corelib/serialization/qcborvalue.h
@@ -139,7 +139,9 @@ public:
QT_ASCII_CAST_WARN QCborValue(const char *s) : QCborValue(QString::fromUtf8(s)) {}
#endif
QCborValue(const QCborArray &a);
+ QCborValue(QCborArray &&a);
QCborValue(const QCborMap &m);
+ QCborValue(QCborMap &&m);
QCborValue(QCborTag tag, const QCborValue &taggedValue = QCborValue());
QCborValue(QCborKnownTags t_, const QCborValue &tv = QCborValue())
: QCborValue(QCborTag(t_), tv)