QHttpMultiPartPrivate: de-inline dtors of polymorphic classes

Prevents weak (= duplicated) vtables and the associated problems.

Amends the start of the public history.

Pick-to: 6.7 6.5
Task-number: QTBUG-45582
Change-Id: I26618483900437aca05c753a5d53a359e43bd702
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit 645509935ad5a2e8a3fcc858c41d08919a2596bd)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marc Mutz 2024-05-28 08:32:11 +02:00 committed by Qt Cherry-pick Bot
parent 4206ef4a93
commit c54f772618
2 changed files with 10 additions and 7 deletions

View File

@ -409,6 +409,14 @@ QHttpMultiPartPrivate::QHttpMultiPartPrivate() : contentType(QHttpMultiPart::Mix
Q_ASSERT(boundary.size() <= 70);
}
QHttpMultiPartPrivate::~QHttpMultiPartPrivate()
{
delete device;
}
QHttpMultiPartIODevice::~QHttpMultiPartIODevice()
= default;
qint64 QHttpMultiPartIODevice::size() const
{
// if not done yet, we calculate the size and the offsets of each part,

View File

@ -94,8 +94,7 @@ public:
QIODevice(), multiPart(parentMultiPart), readPointer(0), deviceSize(-1) {
}
~QHttpMultiPartIODevice() {
}
~QHttpMultiPartIODevice() override;
virtual bool atEnd() const override {
return readPointer == size();
@ -135,11 +134,7 @@ class QHttpMultiPartPrivate: public QObjectPrivate
public:
QHttpMultiPartPrivate();
~QHttpMultiPartPrivate()
{
delete device;
}
~QHttpMultiPartPrivate() override;
QList<QHttpPart> parts;
QByteArray boundary;