diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-01-04 09:41:34 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-01-04 12:26:11 +0100 |
| commit | b96b672b208c6717c3362e08e42247912423fea1 (patch) | |
| tree | 43b44110f6d7a2be6e12aa41a89f53c0fefc453c /sources/pyside6 | |
| parent | 3bc23d37737184a89f780d84f431757cd7f725c2 (diff) | |
PySide6: Port from QSharedPointer to std::shared_ptr
Task-number: QTBUG-109570
Change-Id: Ieb13bf352d9b75e364a73bddc464548ec19701ed
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6')
| -rw-r--r-- | sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp | 10 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/qtcorehelper.h | 6 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/globalreceiverv2.h | 3 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 9 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/signalmanager.cpp | 8 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlattached.cpp | 4 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlattached_p.h | 4 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlextended.cpp | 6 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlextended_p.h | 4 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmlregistertype.cpp | 2 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp | 2 | ||||
| -rw-r--r-- | sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h | 4 |
12 files changed, 32 insertions, 30 deletions
diff --git a/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp b/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp index 0ce4ce922..2dc2f3b40 100644 --- a/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp +++ b/sources/pyside6/PySide6/QtCore/glue/qtcorehelper.cpp @@ -50,7 +50,7 @@ QGenericArgumentHolder::QGenericArgumentHolder() } QGenericArgumentHolder::QGenericArgumentHolder(const QMetaType &type, const void *aData) : - d(new QGenericArgumentData(type, aData)) + d(std::make_shared<QGenericArgumentData>(type, aData)) { } @@ -62,21 +62,21 @@ QGenericArgumentHolder::~QGenericArgumentHolder() = default; QGenericArgumentHolder::operator QGenericArgument() const { - return d.isNull() ? QGenericArgument{} : d->m_argument; + return d ? d->m_argument : QGenericArgument{}; } QMetaType QGenericArgumentHolder::metaType() const { - return d.isNull() ? QMetaType{} : d->m_type; + return d ? d->m_type : QMetaType{}; } const void *QGenericArgumentHolder::data() const { - return d.isNull() ? nullptr : d->m_argument.data(); + return d ? d->m_argument.data() : nullptr; } QGenericReturnArgumentHolder::QGenericReturnArgumentHolder(const QMetaType &type, void *aData) : - d(new QGenericReturnArgumentData(type, aData)) + d(std::make_shared<QGenericReturnArgumentData>(type, aData)) { } diff --git a/sources/pyside6/PySide6/qtcorehelper.h b/sources/pyside6/PySide6/qtcorehelper.h index 522074cba..bacb7dbd9 100644 --- a/sources/pyside6/PySide6/qtcorehelper.h +++ b/sources/pyside6/PySide6/qtcorehelper.h @@ -4,10 +4,10 @@ #ifndef QTCOREHELPER_H #define QTCOREHELPER_H -#include <QtCore/qsharedpointer.h> #include <QtCore/qmutex.h> #include <QtCore/qobjectdefs.h> +#include <memory> namespace QtCoreHelper { @@ -88,7 +88,7 @@ namespace QtCoreHelper { const void *data() const; private: - QSharedPointer<QGenericArgumentData> d; + std::shared_ptr<QGenericArgumentData> d; }; class QGenericReturnArgumentData; @@ -110,7 +110,7 @@ namespace QtCoreHelper { const void *data() const; private: - QSharedPointer<QGenericReturnArgumentData> d; + std::shared_ptr<QGenericReturnArgumentData> d; }; } // namespace QtCoreHelper diff --git a/sources/pyside6/libpyside/globalreceiverv2.h b/sources/pyside6/libpyside/globalreceiverv2.h index eda4f34d0..c44b8a12f 100644 --- a/sources/pyside6/libpyside/globalreceiverv2.h +++ b/sources/pyside6/libpyside/globalreceiverv2.h @@ -12,7 +12,8 @@ #include <QtCore/QObject> #include <QtCore/QPointer> #include <QtCore/QMap> -#include <QtCore/QSharedPointer> + +#include <memory> namespace PySide { diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index b3d88e23b..50d125a28 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -38,13 +38,13 @@ #include <QtCore/QDir> #include <QtCore/QFileInfo> #include <QtCore/QMutex> -#include <QtCore/QSharedPointer> #include <QtCore/QStack> #include <QtCore/QThread> #include <algorithm> #include <cstring> #include <cctype> +#include <memory> #include <typeinfo> static QStack<PySide::CleanupFunction> cleanupFunctionList; @@ -632,11 +632,12 @@ void setNextQObjectMemoryAddr(void *addr) } // namespace PySide -// A QSharedPointer is used with a deletion function to invalidate a pointer +// A std::shared_ptr is used with a deletion function to invalidate a pointer // when the property value is cleared. This should be a QSharedPointer with // a void *pointer, but that isn't allowed typedef char any_t; -Q_DECLARE_METATYPE(QSharedPointer<any_t>); +Q_DECLARE_METATYPE(std::shared_ptr<any_t>); + namespace PySide { @@ -698,7 +699,7 @@ PyObject *getWrapperForQObject(QObject *cppSelf, PyTypeObject *sbk_type) QVariant existing = cppSelf->property(invalidatePropertyName); if (!existing.isValid()) { if (cppSelf->thread() == QThread::currentThread()) { - QSharedPointer<any_t> shared_with_del(reinterpret_cast<any_t *>(cppSelf), invalidatePtr); + std::shared_ptr<any_t> shared_with_del(reinterpret_cast<any_t *>(cppSelf), invalidatePtr); cppSelf->setProperty(invalidatePropertyName, QVariant::fromValue(shared_with_del)); } pyOut = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(cppSelf)); diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp index 227ffdb04..7e1bc8c6b 100644 --- a/sources/pyside6/libpyside/signalmanager.cpp +++ b/sources/pyside6/libpyside/signalmanager.cpp @@ -188,7 +188,7 @@ QDataStream &operator>>(QDataStream &in, PyObjectWrapper &myObj) }; namespace PySide { -using GlobalReceiverV2Ptr = QSharedPointer<GlobalReceiverV2>; +using GlobalReceiverV2Ptr = std::shared_ptr<GlobalReceiverV2>; using GlobalReceiverV2Map = QHash<PySide::GlobalReceiverKey, GlobalReceiverV2Ptr>; } @@ -283,13 +283,13 @@ QObject *SignalManager::globalReceiver(QObject *sender, PyObject *callback, QObj const GlobalReceiverKey key = GlobalReceiverV2::key(callback); auto it = globalReceivers.find(key); if (it == globalReceivers.end()) { - GlobalReceiverV2Ptr gr(new GlobalReceiverV2(callback, receiver)); + auto gr = std::make_shared<GlobalReceiverV2>(callback, receiver); it = globalReceivers.insert(key, gr); } if (sender) it.value()->incRef(sender); // create a link reference - return it.value().data(); + return it.value().get(); } void SignalManager::notifyGlobalReceiver(QObject *receiver) @@ -313,7 +313,7 @@ void SignalManager::deleteGobalReceiver(const QObject *gr) void SignalManager::SignalManagerPrivate::deleteGobalReceiver(const QObject *gr) { for (auto it = m_globalReceivers.begin(), end = m_globalReceivers.end(); it != end; ++it) { - if (it.value().data() == gr) { + if (it.value().get() == gr) { m_globalReceivers.erase(it); break; } diff --git a/sources/pyside6/libpysideqml/pysideqmlattached.cpp b/sources/pyside6/libpysideqml/pysideqmlattached.cpp index 295cb7595..930358d77 100644 --- a/sources/pyside6/libpysideqml/pysideqmlattached.cpp +++ b/sources/pyside6/libpysideqml/pysideqmlattached.cpp @@ -173,10 +173,10 @@ void initQmlAttached(PyObject *module) } PySide::Qml::QmlExtensionInfo qmlAttachedInfo(PyTypeObject *t, - const QSharedPointer<QmlTypeInfo> &info) + const std::shared_ptr<QmlTypeInfo> &info) { PySide::Qml::QmlExtensionInfo result{nullptr, nullptr}; - if (info.isNull() || info->attachedType == nullptr) + if (!info || info->attachedType == nullptr) return result; auto *name = reinterpret_cast<PyTypeObject *>(t)->tp_name; diff --git a/sources/pyside6/libpysideqml/pysideqmlattached_p.h b/sources/pyside6/libpysideqml/pysideqmlattached_p.h index 93b1bb0e6..7c8a47fb8 100644 --- a/sources/pyside6/libpysideqml/pysideqmlattached_p.h +++ b/sources/pyside6/libpysideqml/pysideqmlattached_p.h @@ -6,7 +6,7 @@ #include <sbkpython.h> -#include <QtCore/QSharedPointer> +#include <memory> namespace PySide::Qml { struct QmlExtensionInfo; @@ -15,7 +15,7 @@ struct QmlTypeInfo; void initQmlAttached(PyObject *module); PySide::Qml::QmlExtensionInfo qmlAttachedInfo(PyTypeObject *t, - const QSharedPointer<QmlTypeInfo> &info); + const std::shared_ptr<QmlTypeInfo> &info); } // namespace PySide::Qml #endif // PYSIDEQMLATTACHED_P_H diff --git a/sources/pyside6/libpysideqml/pysideqmlextended.cpp b/sources/pyside6/libpysideqml/pysideqmlextended.cpp index e42fe20dd..014794854 100644 --- a/sources/pyside6/libpysideqml/pysideqmlextended.cpp +++ b/sources/pyside6/libpysideqml/pysideqmlextended.cpp @@ -92,7 +92,7 @@ static QObject *extensionFactory(QObject *o) auto *pyObjType = Py_TYPE(pyObj); const auto info = qmlTypeInfo(reinterpret_cast<PyObject *>(pyObjType)); - if (info.isNull() || info->extensionType == nullptr) { + if (!info || info->extensionType == nullptr) { qWarning("QmlExtended: Cannot find extension of %s.", pyObjType->tp_name); return nullptr; } @@ -128,10 +128,10 @@ void initQmlExtended(PyObject *module) } PySide::Qml::QmlExtensionInfo qmlExtendedInfo(PyObject *t, - const QSharedPointer<QmlTypeInfo> &info) + const std::shared_ptr<QmlTypeInfo> &info) { PySide::Qml::QmlExtensionInfo result{nullptr, nullptr}; - if (!info.isNull() && info->extensionType) { + if (info && info->extensionType) { result.metaObject = PySide::retrieveMetaObject(info->extensionType); if (result.metaObject) { result.factory = extensionFactory; diff --git a/sources/pyside6/libpysideqml/pysideqmlextended_p.h b/sources/pyside6/libpysideqml/pysideqmlextended_p.h index 9650a26c3..17d6dae64 100644 --- a/sources/pyside6/libpysideqml/pysideqmlextended_p.h +++ b/sources/pyside6/libpysideqml/pysideqmlextended_p.h @@ -6,7 +6,7 @@ #include <sbkpython.h> -#include <QtCore/QSharedPointer> +#include <memory> namespace PySide::Qml { struct QmlExtensionInfo; @@ -15,7 +15,7 @@ struct QmlTypeInfo; void initQmlExtended(PyObject *module); PySide::Qml::QmlExtensionInfo qmlExtendedInfo(PyObject *t, - const QSharedPointer<QmlTypeInfo> &info); + const std::shared_ptr<QmlTypeInfo> &info); } // namespace PySide::Qml #endif // PYSIDEQMLEXTENDED_P_H diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp index 26398ae76..8333550ed 100644 --- a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp +++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp @@ -436,7 +436,7 @@ PyObject *qmlElementMacro(PyObject *pyObj, const char *decoratorName, const char *noCreationReason = nullptr; const auto info = PySide::Qml::qmlTypeInfo(pyObj); auto *registerObject = pyObj; - if (!info.isNull()) { + if (info) { if (info->flags.testFlag(PySide::Qml::QmlTypeFlag::Singleton)) mode = RegisterMode::Singleton; else if (info->flags.testFlag(PySide::Qml::QmlTypeFlag::Uncreatable)) diff --git a/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp b/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp index 31abedd8a..0304d33e3 100644 --- a/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp +++ b/sources/pyside6/libpysideqml/pysideqmltypeinfo.cpp @@ -19,7 +19,7 @@ QmlTypeInfoPtr ensureQmlTypeInfo(const PyObject *o) auto *hash = qmlTypeInfoHashStatic(); auto it = hash->find(o); if (it == hash->end()) - it = hash->insert(o, QmlTypeInfoPtr(new QmlTypeInfo)); + it = hash->insert(o, std::make_shared<QmlTypeInfo>()); return it.value(); } diff --git a/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h b/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h index 465299833..e10a2b38c 100644 --- a/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h +++ b/sources/pyside6/libpysideqml/pysideqmltypeinfo_p.h @@ -7,8 +7,8 @@ #include <sbkpython.h> #include <QtCore/QFlags> -#include <QtCore/QSharedPointer> +#include <memory> #include <string> QT_FORWARD_DECLARE_CLASS(QDebug) @@ -36,7 +36,7 @@ struct QmlTypeInfo PyTypeObject *extensionType = nullptr; }; -using QmlTypeInfoPtr = QSharedPointer<QmlTypeInfo>; +using QmlTypeInfoPtr = std::shared_ptr<QmlTypeInfo>; QmlTypeInfoPtr ensureQmlTypeInfo(const PyObject *o); void insertQmlTypeInfoAlias(const PyObject *o, const QmlTypeInfoPtr &value); |
