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); Q_ASSERT(boundary.size() <= 70);
} }
QHttpMultiPartPrivate::~QHttpMultiPartPrivate()
{
delete device;
}
QHttpMultiPartIODevice::~QHttpMultiPartIODevice()
= default;
qint64 QHttpMultiPartIODevice::size() const qint64 QHttpMultiPartIODevice::size() const
{ {
// if not done yet, we calculate the size and the offsets of each part, // 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) { QIODevice(), multiPart(parentMultiPart), readPointer(0), deviceSize(-1) {
} }
~QHttpMultiPartIODevice() { ~QHttpMultiPartIODevice() override;
}
virtual bool atEnd() const override { virtual bool atEnd() const override {
return readPointer == size(); return readPointer == size();
@ -135,11 +134,7 @@ class QHttpMultiPartPrivate: public QObjectPrivate
public: public:
QHttpMultiPartPrivate(); QHttpMultiPartPrivate();
~QHttpMultiPartPrivate() override;
~QHttpMultiPartPrivate()
{
delete device;
}
QList<QHttpPart> parts; QList<QHttpPart> parts;
QByteArray boundary; QByteArray boundary;