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.8 6.7 6.5
Task-number: QTBUG-45582
Change-Id: I26618483900437aca05c753a5d53a359e43bd702
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Marc Mutz 2024-05-28 08:32:11 +02:00
parent 09fce4a587
commit 645509935a
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;