diff options
author | Marc Mutz <marc.mutz@qt.io> | 2021-12-02 17:36:38 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2021-12-07 07:27:08 +0000 |
commit | d94d2505bc8dff426febfec24ac292210dd4a4cb (patch) | |
tree | 1a0baaf0ea984d5d5f36b38612fef10bad8cb26c | |
parent | 35e0176cfa90c38a76cba11d7dccf178344457dd (diff) |
Make dtors out-of-line
Pins vtable to a single TU, instead of duplicating it across all TUs
that use the class, possibly causing invalid dynamic_cast<>s and other
bugs.
Fixes: QTBUG-98880
Task-number: QTBUG-45582
Change-Id: Ic296f4583097181ac4d824fac6dab4671ae14a50
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
-rw-r--r-- | src/pdf/qpdfbookmarkmodel.cpp | 2 | ||||
-rw-r--r-- | src/pdf/qpdfbookmarkmodel.h | 1 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfdocument.cpp | 5 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfdocument_p.h | 1 | ||||
-rw-r--r-- | src/pdfquick/qquickpdflinkmodel.cpp | 5 | ||||
-rw-r--r-- | src/pdfquick/qquickpdflinkmodel_p.h | 1 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfnavigationstack.cpp | 5 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfnavigationstack_p.h | 1 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfsearchmodel.cpp | 5 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfsearchmodel_p.h | 1 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfselection.cpp | 5 | ||||
-rw-r--r-- | src/pdfquick/qquickpdfselection_p.h | 1 | ||||
-rw-r--r-- | src/pdfquick/qquicktableviewextra.cpp | 5 | ||||
-rw-r--r-- | src/pdfquick/qquicktableviewextra_p.h | 1 |
14 files changed, 39 insertions, 0 deletions
diff --git a/src/pdf/qpdfbookmarkmodel.cpp b/src/pdf/qpdfbookmarkmodel.cpp index 08caf6624..8d8bb1973 100644 --- a/src/pdf/qpdfbookmarkmodel.cpp +++ b/src/pdf/qpdfbookmarkmodel.cpp @@ -227,6 +227,8 @@ QPdfBookmarkModel::QPdfBookmarkModel(QObject *parent) { } +QPdfBookmarkModel::~QPdfBookmarkModel() = default; + QPdfDocument* QPdfBookmarkModel::document() const { Q_D(const QPdfBookmarkModel); diff --git a/src/pdf/qpdfbookmarkmodel.h b/src/pdf/qpdfbookmarkmodel.h index a0eb98962..ee65e11f4 100644 --- a/src/pdf/qpdfbookmarkmodel.h +++ b/src/pdf/qpdfbookmarkmodel.h @@ -72,6 +72,7 @@ public: Q_ENUM(Role) explicit QPdfBookmarkModel(QObject *parent = nullptr); + ~QPdfBookmarkModel() override; QPdfDocument* document() const; void setDocument(QPdfDocument *document); diff --git a/src/pdfquick/qquickpdfdocument.cpp b/src/pdfquick/qquickpdfdocument.cpp index 916505cfc..b9ee0b725 100644 --- a/src/pdfquick/qquickpdfdocument.cpp +++ b/src/pdfquick/qquickpdfdocument.cpp @@ -73,6 +73,11 @@ QQuickPdfDocument::QQuickPdfDocument(QObject *parent) connect(&m_doc, &QPdfDocument::pageCountChanged, this, &QQuickPdfDocument::pageCountChanged); } +/*! + \internal +*/ +QQuickPdfDocument::~QQuickPdfDocument() = default; + void QQuickPdfDocument::componentComplete() { if (m_doc.error() == QPdfDocument::IncorrectPasswordError) diff --git a/src/pdfquick/qquickpdfdocument_p.h b/src/pdfquick/qquickpdfdocument_p.h index 4b50aca63..29877d0d7 100644 --- a/src/pdfquick/qquickpdfdocument_p.h +++ b/src/pdfquick/qquickpdfdocument_p.h @@ -83,6 +83,7 @@ class Q_PDFQUICK_EXPORT QQuickPdfDocument : public QObject, public QQmlParserSta public: explicit QQuickPdfDocument(QObject *parent = nullptr); + ~QQuickPdfDocument() override; void classBegin() override {} void componentComplete() override; diff --git a/src/pdfquick/qquickpdflinkmodel.cpp b/src/pdfquick/qquickpdflinkmodel.cpp index 12b425beb..5d3d21654 100644 --- a/src/pdfquick/qquickpdflinkmodel.cpp +++ b/src/pdfquick/qquickpdflinkmodel.cpp @@ -108,6 +108,11 @@ QQuickPdfLinkModel::QQuickPdfLinkModel(QObject *parent) } /*! + \internal +*/ +QQuickPdfLinkModel::~QQuickPdfLinkModel() = default; + +/*! \qmlproperty PdfDocument PdfLinkModel::document This property holds the PDF document in which links are to be found. diff --git a/src/pdfquick/qquickpdflinkmodel_p.h b/src/pdfquick/qquickpdflinkmodel_p.h index 1c7b4aba0..e7dcc6a3e 100644 --- a/src/pdfquick/qquickpdflinkmodel_p.h +++ b/src/pdfquick/qquickpdflinkmodel_p.h @@ -67,6 +67,7 @@ class Q_PDFQUICK_EXPORT QQuickPdfLinkModel : public QPdfLinkModel public: explicit QQuickPdfLinkModel(QObject *parent = nullptr); + ~QQuickPdfLinkModel() override; QQuickPdfDocument *document() const; void setDocument(QQuickPdfDocument *document); diff --git a/src/pdfquick/qquickpdfnavigationstack.cpp b/src/pdfquick/qquickpdfnavigationstack.cpp index 412318037..3992322e9 100644 --- a/src/pdfquick/qquickpdfnavigationstack.cpp +++ b/src/pdfquick/qquickpdfnavigationstack.cpp @@ -63,6 +63,11 @@ QQuickPdfNavigationStack::QQuickPdfNavigationStack(QObject *parent) } /*! + \internal +*/ +QQuickPdfNavigationStack::~QQuickPdfNavigationStack() = default; + +/*! \qmlmethod void PdfNavigationStack::forward() Goes back to the page, location and zoom level that was being viewed before diff --git a/src/pdfquick/qquickpdfnavigationstack_p.h b/src/pdfquick/qquickpdfnavigationstack_p.h index 4b0085dc7..44ccb787a 100644 --- a/src/pdfquick/qquickpdfnavigationstack_p.h +++ b/src/pdfquick/qquickpdfnavigationstack_p.h @@ -70,6 +70,7 @@ class Q_PDFQUICK_EXPORT QQuickPdfNavigationStack : public QObject public: explicit QQuickPdfNavigationStack(QObject *parent = nullptr); + ~QQuickPdfNavigationStack() override; Q_INVOKABLE void push(int page, QPointF location, qreal zoom, bool emitJumped = true); Q_INVOKABLE void update(int page, QPointF location, qreal zoom); diff --git a/src/pdfquick/qquickpdfsearchmodel.cpp b/src/pdfquick/qquickpdfsearchmodel.cpp index fc022194b..b5d9bc67d 100644 --- a/src/pdfquick/qquickpdfsearchmodel.cpp +++ b/src/pdfquick/qquickpdfsearchmodel.cpp @@ -63,6 +63,11 @@ QQuickPdfSearchModel::QQuickPdfSearchModel(QObject *parent) this, &QQuickPdfSearchModel::onResultsChanged); } +/*! + \internal +*/ +QQuickPdfSearchModel::~QQuickPdfSearchModel() = default; + QQuickPdfDocument *QQuickPdfSearchModel::document() const { return m_quickDocument; diff --git a/src/pdfquick/qquickpdfsearchmodel_p.h b/src/pdfquick/qquickpdfsearchmodel_p.h index 5833bcb59..de1d86f42 100644 --- a/src/pdfquick/qquickpdfsearchmodel_p.h +++ b/src/pdfquick/qquickpdfsearchmodel_p.h @@ -72,6 +72,7 @@ class Q_PDFQUICK_EXPORT QQuickPdfSearchModel : public QPdfSearchModel public: explicit QQuickPdfSearchModel(QObject *parent = nullptr); + ~QQuickPdfSearchModel() override; QQuickPdfDocument *document() const; void setDocument(QQuickPdfDocument * document); diff --git a/src/pdfquick/qquickpdfselection.cpp b/src/pdfquick/qquickpdfselection.cpp index c35f20330..bc4b7a765 100644 --- a/src/pdfquick/qquickpdfselection.cpp +++ b/src/pdfquick/qquickpdfselection.cpp @@ -86,6 +86,11 @@ QQuickPdfSelection::QQuickPdfSelection(QQuickItem *parent) #endif } +/*! + \internal +*/ +QQuickPdfSelection::~QQuickPdfSelection() = default; + QQuickPdfDocument *QQuickPdfSelection::document() const { return m_document; diff --git a/src/pdfquick/qquickpdfselection_p.h b/src/pdfquick/qquickpdfselection_p.h index 660b22efc..997f95643 100644 --- a/src/pdfquick/qquickpdfselection_p.h +++ b/src/pdfquick/qquickpdfselection_p.h @@ -77,6 +77,7 @@ class Q_PDFQUICK_EXPORT QQuickPdfSelection : public QQuickItem public: explicit QQuickPdfSelection(QQuickItem *parent = nullptr); + ~QQuickPdfSelection() override; QQuickPdfDocument *document() const; void setDocument(QQuickPdfDocument * document); diff --git a/src/pdfquick/qquicktableviewextra.cpp b/src/pdfquick/qquicktableviewextra.cpp index f8698dc95..9687150a5 100644 --- a/src/pdfquick/qquicktableviewextra.cpp +++ b/src/pdfquick/qquicktableviewextra.cpp @@ -62,6 +62,11 @@ QQuickTableViewExtra::QQuickTableViewExtra(QObject *parent) : QObject(parent) { } +/*! + \internal +*/ +QQuickTableViewExtra::~QQuickTableViewExtra() = default; + QPoint QQuickTableViewExtra::cellAtPos(qreal x, qreal y) const { QPointF position(x, y); diff --git a/src/pdfquick/qquicktableviewextra_p.h b/src/pdfquick/qquicktableviewextra_p.h index 60101a95e..4ba97a06f 100644 --- a/src/pdfquick/qquicktableviewextra_p.h +++ b/src/pdfquick/qquicktableviewextra_p.h @@ -68,6 +68,7 @@ class Q_PDFQUICK_EXPORT QQuickTableViewExtra : public QObject public: QQuickTableViewExtra(QObject *parent = nullptr); + ~QQuickTableViewExtra() override; QQuickTableView * tableView() const { return m_tableView; } void setTableView(QQuickTableView * tableView) { m_tableView = tableView; } |