diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2021-12-30 12:46:50 +0100 |
---|---|---|
committer | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-01-01 20:46:53 +0100 |
commit | a5a261b2c0dc60f99c8caa4729683d2780677f88 (patch) | |
tree | 01f030078db8a192904bf1c321071ee3ecf67b09 | |
parent | 5b8ea1a0d419fda1729aaa81e34ad20e0dacef44 (diff) | |
download | libquotient-a5a261b2c0dc60f99c8caa4729683d2780677f88.tar.gz libquotient-a5a261b2c0dc60f99c8caa4729683d2780677f88.zip |
Define destructors out-of-line when unique/scoped ptr are involved
Once visibility kicks in, MSVC changes its ways and tries to instantiate
Private classes wrapped in smart pointers upon their occurence in the
header file - which leads to build breakage because of a missing
destructor. Usually making the outer class destructor out-of-line helps
to fix this (see RoomEvent, for one example).
-rw-r--r-- | lib/jobs/downloadfilejob.cpp | 2 | ||||
-rw-r--r-- | lib/jobs/downloadfilejob.h | 1 | ||||
-rw-r--r-- | lib/mxcreply.cpp | 2 | ||||
-rw-r--r-- | lib/mxcreply.h | 2 |
4 files changed, 7 insertions, 0 deletions
diff --git a/lib/jobs/downloadfilejob.cpp b/lib/jobs/downloadfilejob.cpp index 0b0531ad..6bf221cb 100644 --- a/lib/jobs/downloadfilejob.cpp +++ b/lib/jobs/downloadfilejob.cpp @@ -37,6 +37,8 @@ DownloadFileJob::DownloadFileJob(const QString& serverName, setObjectName(QStringLiteral("DownloadFileJob")); } +DownloadFileJob::~DownloadFileJob() = default; + QString DownloadFileJob::targetFileName() const { return (d->targetFile ? d->targetFile : d->tempFile)->fileName(); diff --git a/lib/jobs/downloadfilejob.h b/lib/jobs/downloadfilejob.h index d9f3b686..9e807fe7 100644 --- a/lib/jobs/downloadfilejob.h +++ b/lib/jobs/downloadfilejob.h @@ -13,6 +13,7 @@ public: DownloadFileJob(const QString& serverName, const QString& mediaId, const QString& localFilename = {}); + ~DownloadFileJob() override; QString targetFileName() const; diff --git a/lib/mxcreply.cpp b/lib/mxcreply.cpp index 0b6643fc..fb16c79f 100644 --- a/lib/mxcreply.cpp +++ b/lib/mxcreply.cpp @@ -38,6 +38,8 @@ MxcReply::MxcReply(QNetworkReply* reply, Room* room, const QString &eventId) }); } +MxcReply::~MxcReply() = default; + #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) #define ERROR_SIGNAL errorOccurred #else diff --git a/lib/mxcreply.h b/lib/mxcreply.h index 23049b7d..1d31d608 100644 --- a/lib/mxcreply.h +++ b/lib/mxcreply.h @@ -13,10 +13,12 @@ class Room; class QUOTIENT_API MxcReply : public QNetworkReply { + Q_OBJECT public: explicit MxcReply(); explicit MxcReply(QNetworkReply *reply); MxcReply(QNetworkReply* reply, Room* room, const QString& eventId); + ~MxcReply() override; public Q_SLOTS: void abort() override; |