summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel/qsqlrecord.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-01-09 08:13:29 +0100
committerMarc Mutz <marc.mutz@qt.io>2023-01-13 17:20:55 +0100
commit595360506d18210c614ad8eacf5a1819ae91704e (patch)
tree9d446f7bd52d3d143f4bdc01f2e122157470651b /src/sql/kernel/qsqlrecord.cpp
parent0cd153b2681437b91f07315a27238446cc24363f (diff)
QSqlRecord: add missing C++11 move SMFs
[ChangeLog][QtSql][QSqlRecord] Added move constructor, -assignment operator, and swap(). Task-number: QTBUG-109938 Change-Id: I54f2666defbf56f5ba2faea6358722ebd7cac157 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Diffstat (limited to 'src/sql/kernel/qsqlrecord.cpp')
-rw-r--r--src/sql/kernel/qsqlrecord.cpp35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/sql/kernel/qsqlrecord.cpp b/src/sql/kernel/qsqlrecord.cpp
index a3c6a9debf..bd2be0fc7a 100644
--- a/src/sql/kernel/qsqlrecord.cpp
+++ b/src/sql/kernel/qsqlrecord.cpp
@@ -89,6 +89,37 @@ QSqlRecord::QSqlRecord(const QSqlRecord& other)
}
/*!
+ \fn QSqlRecord::QSqlRecord(QSqlRecord &&other)
+ \since 6.6
+
+ Move-constructs a new QSqlRecord from \a other.
+
+ \note The moved-from object \a other is placed in a partially-formed state,
+ in which the only valid operations are destruction and assignment of a new
+ value.
+*/
+
+/*!
+ \fn QSqlRecord &QSqlRecord::operator=(QSqlRecord &&other)
+ \since 6.6
+
+ Move-assigns \a other to this QSqlRecord instance.
+
+ \note The moved-from object \a other is placed in a partially-formed state,
+ in which the only valid operations are destruction and assignment of a new
+ value.
+*/
+
+/*!
+ \fn void QSqlRecord::swap(QSqlRecord &other)
+ \since 6.6
+
+ Swaps SQL record \a other with this SQL record. This operation is very fast
+ and never fails.
+*/
+
+
+/*!
Sets the record equal to \a other.
QSqlRecord is \l{implicitly shared}. This means you can make copies
@@ -97,7 +128,7 @@ QSqlRecord::QSqlRecord(const QSqlRecord& other)
QSqlRecord& QSqlRecord::operator=(const QSqlRecord& other)
{
- qAtomicAssign(d, other.d);
+ QSqlRecord(other).swap(*this);
return *this;
}
@@ -107,7 +138,7 @@ QSqlRecord& QSqlRecord::operator=(const QSqlRecord& other)
QSqlRecord::~QSqlRecord()
{
- if (!d->ref.deref())
+ if (d && !d->ref.deref())
delete d;
}