QtCore: De-duplicate vtables, 2024 edition
This de-inlines destuctors of classes whose vtables are proven to be duplicated by -Wweak-tables using the upcoming headersclean for _p.h feature. Since these are all private API classes, we can pick all the way back to 6.2, and we don't need the comment that the dtor must always stay empty, like for public classes. Task-number: QTBUG-45582 Task-number: QTBUG-126219 Change-Id: I8c864c0d2ed3ca20d20d5cfc356290eb529edf6c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> (cherry picked from commit 3af20bd8eb8c75017c5d6d138d7c42914ee5bee3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
8189baf26d
commit
e966f3189a
@ -58,6 +58,9 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QPropertyAnimationPrivate::~QPropertyAnimationPrivate()
|
||||
= default;
|
||||
|
||||
void QPropertyAnimationPrivate::updateMetaProperty()
|
||||
{
|
||||
const QObject *target = targetObject.valueBypassingBindings();
|
||||
|
@ -29,6 +29,7 @@ class QPropertyAnimationPrivate : public QVariantAnimationPrivate
|
||||
Q_DECLARE_PUBLIC(QPropertyAnimation)
|
||||
public:
|
||||
QPropertyAnimationPrivate() : propertyType(0), propertyIndex(-1) { }
|
||||
~QPropertyAnimationPrivate() override;
|
||||
|
||||
void setTargetObjectForwarder(QObject *target) { q_func()->setTargetObject(target); }
|
||||
Q_OBJECT_COMPAT_PROPERTY_WITH_ARGS(QPropertyAnimationPrivate, QObject *, targetObject,
|
||||
|
@ -152,6 +152,9 @@ template<> Q_INLINE_TEMPLATE QLineF _q_interpolate(const QLineF &f, const QLineF
|
||||
QVariantAnimationPrivate::QVariantAnimationPrivate() : duration(250), interpolator(&defaultInterpolator)
|
||||
{ }
|
||||
|
||||
QVariantAnimationPrivate::~QVariantAnimationPrivate()
|
||||
= default;
|
||||
|
||||
void QVariantAnimationPrivate::convertValues(int t)
|
||||
{
|
||||
auto type = QMetaType(t);
|
||||
|
@ -34,6 +34,7 @@ class QVariantAnimationPrivate : public QAbstractAnimationPrivate
|
||||
public:
|
||||
|
||||
QVariantAnimationPrivate();
|
||||
~QVariantAnimationPrivate() override;
|
||||
|
||||
static QVariantAnimationPrivate *get(QVariantAnimation *q)
|
||||
{
|
||||
|
@ -32,6 +32,9 @@ static QString appendSlashIfNeeded(const QString &path)
|
||||
return path;
|
||||
}
|
||||
|
||||
QAbstractFileEnginePrivate::~QAbstractFileEnginePrivate()
|
||||
= default;
|
||||
|
||||
/*!
|
||||
\class QAbstractFileEngineHandler
|
||||
\inmodule QtCore
|
||||
|
@ -246,7 +246,7 @@ public:
|
||||
: fileError(QFile::UnspecifiedError)
|
||||
{
|
||||
}
|
||||
inline virtual ~QAbstractFileEnginePrivate() { }
|
||||
virtual ~QAbstractFileEnginePrivate();
|
||||
|
||||
QFile::FileError fileError;
|
||||
QString errorString;
|
||||
|
@ -8,6 +8,9 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QIdentityProxyModelPrivate::~QIdentityProxyModelPrivate()
|
||||
= default;
|
||||
|
||||
/*!
|
||||
\since 4.8
|
||||
\class QIdentityProxyModel
|
||||
|
@ -29,6 +29,7 @@ public:
|
||||
QIdentityProxyModelPrivate()
|
||||
{
|
||||
}
|
||||
~QIdentityProxyModelPrivate() override;
|
||||
|
||||
QList<QPersistentModelIndex> layoutChangePersistentIndexes;
|
||||
QModelIndexList proxyIndexes;
|
||||
|
@ -549,6 +549,8 @@ void QItemSelection::split(const QItemSelectionRange &range,
|
||||
}
|
||||
}
|
||||
|
||||
QItemSelectionModelPrivate::~QItemSelectionModelPrivate()
|
||||
= default;
|
||||
|
||||
void QItemSelectionModelPrivate::initModel(QAbstractItemModel *m)
|
||||
{
|
||||
|
@ -31,6 +31,7 @@ public:
|
||||
QItemSelectionModelPrivate()
|
||||
: currentCommand(QItemSelectionModel::NoUpdate),
|
||||
tableSelected(false), tableColCount(0), tableRowCount(0) {}
|
||||
~QItemSelectionModelPrivate() override;
|
||||
|
||||
QItemSelection expandSelection(const QItemSelection &selection,
|
||||
QItemSelectionModel::SelectionFlags command) const;
|
||||
|
@ -14,6 +14,9 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QEventLoopPrivate::~QEventLoopPrivate()
|
||||
= default;
|
||||
|
||||
/*!
|
||||
\class QEventLoop
|
||||
\inmodule QtCore
|
||||
|
@ -30,6 +30,7 @@ public:
|
||||
returnCode.storeRelaxed(-1);
|
||||
exit.storeRelaxed(true);
|
||||
}
|
||||
~QEventLoopPrivate() override;
|
||||
|
||||
QAtomicInt quitLockRef;
|
||||
|
||||
|
@ -19,6 +19,9 @@ using namespace std::chrono_literals;
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QTimerPrivate::~QTimerPrivate()
|
||||
= default;
|
||||
|
||||
/*!
|
||||
\class QTimer
|
||||
\inmodule QtCore
|
||||
|
@ -35,6 +35,7 @@ public:
|
||||
{
|
||||
intervalDuration.notify();
|
||||
}
|
||||
~QTimerPrivate() override;
|
||||
|
||||
static constexpr int INV_TIMER = -1; // invalid timer id
|
||||
|
||||
|
@ -57,6 +57,9 @@ static const char matchMaskAttributeC[] = "mask";
|
||||
\sa QMimeTypeParser
|
||||
*/
|
||||
|
||||
QMimeTypeParser::~QMimeTypeParser()
|
||||
= default;
|
||||
|
||||
/*!
|
||||
\class QMimeTypeParserBase
|
||||
\inmodule QtCore
|
||||
@ -69,6 +72,9 @@ static const char matchMaskAttributeC[] = "mask";
|
||||
\sa QMimeTypeParser
|
||||
*/
|
||||
|
||||
QMimeTypeParserBase::~QMimeTypeParserBase()
|
||||
= default;
|
||||
|
||||
/*!
|
||||
\fn virtual bool QMimeTypeParserBase::process(const QMimeType &t, QString *errorMessage) = 0;
|
||||
Overwrite to process the sequence of parsed data
|
||||
|
@ -47,7 +47,7 @@ class QMimeTypeParserBase
|
||||
|
||||
public:
|
||||
QMimeTypeParserBase() {}
|
||||
virtual ~QMimeTypeParserBase() {}
|
||||
virtual ~QMimeTypeParserBase();
|
||||
|
||||
bool parse(QIODevice *dev, const QString &fileName, QString *errorMessage);
|
||||
|
||||
@ -86,6 +86,7 @@ class QMimeTypeParser : public QMimeTypeParserBase
|
||||
{
|
||||
public:
|
||||
explicit QMimeTypeParser(QMimeXMLProvider &provider) : m_provider(provider) {}
|
||||
~QMimeTypeParser() override;
|
||||
|
||||
protected:
|
||||
inline bool process(const QMimeTypeXMLData &t, QString *) override
|
||||
|
Loading…
x
Reference in New Issue
Block a user