summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel/qsqlrecord.cpp
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2023-03-27 19:26:38 +0200
committerChristian Ehrlicher <ch.ehrlicher@gmx.de>2023-04-26 19:56:07 +0000
commit204f1764ca6f4b670eaa87a775ded09a72a07aba (patch)
tree0101ae8fd143091df12ddf1274b3e94706cce141 /src/sql/kernel/qsqlrecord.cpp
parentf291575d95ab0159fa809c63855f787ccb1877f5 (diff)
QSqlRecord: use QSharedData for private class
Use QSharedData for the private class instead a home-brew version. Change-Id: Id3625bb0eb8f81c9caa672e2453dab3d44b15ea9 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/sql/kernel/qsqlrecord.cpp')
-rw-r--r--src/sql/kernel/qsqlrecord.cpp28
1 files changed, 7 insertions, 21 deletions
diff --git a/src/sql/kernel/qsqlrecord.cpp b/src/sql/kernel/qsqlrecord.cpp
index c9f26e27a1..e4d2c96c6b 100644
--- a/src/sql/kernel/qsqlrecord.cpp
+++ b/src/sql/kernel/qsqlrecord.cpp
@@ -11,23 +11,17 @@
QT_BEGIN_NAMESPACE
-class QSqlRecordPrivate
+class QSqlRecordPrivate : public QSharedData
{
public:
- QSqlRecordPrivate() = default;
- QSqlRecordPrivate(const QSqlRecordPrivate &other)
- : fields(other.fields)
- {
- }
-
inline bool contains(qsizetype index) const
{
return index >= 0 && index < fields.size();
}
QList<QSqlField> fields;
- QAtomicInt ref{1};
};
+QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QSqlRecordPrivate)
/*!
\class QSqlRecord
@@ -82,10 +76,7 @@ QSqlRecord::QSqlRecord()
*/
QSqlRecord::QSqlRecord(const QSqlRecord& other)
- : d(other.d)
-{
- d->ref.ref();
-}
+ = default;
/*!
\fn QSqlRecord::QSqlRecord(QSqlRecord &&other)
@@ -126,20 +117,15 @@ QSqlRecord::QSqlRecord(const QSqlRecord& other)
*/
QSqlRecord& QSqlRecord::operator=(const QSqlRecord& other)
-{
- QSqlRecord(other).swap(*this);
- return *this;
-}
+ = default;
/*!
Destroys the object and frees any allocated resources.
*/
QSqlRecord::~QSqlRecord()
-{
- if (d && !d->ref.deref())
- delete d;
-}
+ = default;
+
/*!
\fn bool QSqlRecord::operator!=(const QSqlRecord &other) const
@@ -501,7 +487,7 @@ void QSqlRecord::setValue(const QString& name, const QVariant& val)
*/
void QSqlRecord::detach()
{
- qAtomicDetach(d);
+ d.detach();
}
#ifndef QT_NO_DEBUG_STREAM