diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-02-12 17:46:01 +0100 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-03-16 23:55:53 +0100 |
commit | f6d70650933c5c1e9b238d8aaa06419223908183 (patch) | |
tree | c1578b2de4ede82c7106714468cc9486fc9b4c9f /src/sql | |
parent | 67f54358ade659f4207d4b4c1d0f334e8af44407 (diff) |
SQL/SQLDatabase: do not copy q within QSqlDatabasePrivate::copy()
Copying the QSqlDatabase pointer inside QSqlDatabasePrivate::copy() is
not a good idea since it must point to the owning instance and not
another one. Since it's not used anywhere we can safely remove it.
Change-Id: Ie45b594305059afd9b8d8b25d4864dd77769acf7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/sql')
-rw-r--r-- | src/sql/kernel/qsqldatabase.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index ac6e945ca3..5a8d27a5d0 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -46,9 +46,8 @@ Q_GLOBAL_STATIC(QConnectionDict, dbDict) class QSqlDatabasePrivate { public: - QSqlDatabasePrivate(QSqlDatabase *d, QSqlDriver *dr = nullptr): + QSqlDatabasePrivate(QSqlDriver *dr): ref(1), - q(d), driver(dr), port(-1) { @@ -61,7 +60,6 @@ public: void disable(); QAtomicInt ref; - QSqlDatabase *q; QSqlDriver* driver; QString dbname; QString uname; @@ -84,7 +82,6 @@ public: QSqlDatabasePrivate::QSqlDatabasePrivate(const QSqlDatabasePrivate &other) : ref(1) { - q = other.q; dbname = other.dbname; uname = other.uname; pword = other.pword; @@ -140,7 +137,7 @@ DriverDict &QSqlDatabasePrivate::driverDict() QSqlDatabasePrivate *QSqlDatabasePrivate::shared_null() { static QSqlNullDriver dr; - static QSqlDatabasePrivate n(nullptr, &dr); + static QSqlDatabasePrivate n(&dr); return &n; } @@ -212,7 +209,6 @@ QSqlDatabase QSqlDatabasePrivate::database(const QString& name, bool open) */ void QSqlDatabasePrivate::copy(const QSqlDatabasePrivate *other) { - q = other->q; dbname = other->dbname; uname = other->uname; pword = other->pword; @@ -587,8 +583,8 @@ QStringList QSqlDatabase::connectionNames() */ QSqlDatabase::QSqlDatabase(const QString &type) + : d(new QSqlDatabasePrivate(nullptr)) { - d = new QSqlDatabasePrivate(this); d->init(type); } @@ -599,8 +595,8 @@ QSqlDatabase::QSqlDatabase(const QString &type) */ QSqlDatabase::QSqlDatabase(QSqlDriver *driver) + : d(new QSqlDatabasePrivate(driver)) { - d = new QSqlDatabasePrivate(this, driver); } /*! @@ -609,8 +605,8 @@ QSqlDatabase::QSqlDatabase(QSqlDriver *driver) objects. */ QSqlDatabase::QSqlDatabase() + : d(QSqlDatabasePrivate::shared_null()) { - d = QSqlDatabasePrivate::shared_null(); d->ref.ref(); } |