From 84d8f07b6d3133dc10a83f0b64c39a5948334302 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 2 Oct 2016 19:53:14 +0200 Subject: QQuickPopupPrivate: unbreak ubsan build The tst_drawer test uses members of the class, but it was not (autotest-) exported. That's no problem as long as the function called is inline, or a data member is accessed, but in a UBSan build, the typeid of a poly- morphic class is checked on each access, so the typeinfo object must be exported. Fix by autotest-exporting the class and defining the dtor out-of-line to pin the typeinfo and vtabe to a single TU. Change-Id: I1524e63a330dbdb0ae1ceb60263b589734bfd3aa Reviewed-by: J-P Nurmi --- src/quicktemplates2/qquickpopup.cpp | 4 ++++ src/quicktemplates2/qquickpopup_p_p.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 6a1e1c4f..124b8c5b 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -165,6 +165,10 @@ QQuickPopupPrivate::QQuickPopupPrivate() { } +QQuickPopupPrivate::~QQuickPopupPrivate() +{ +} + void QQuickPopupPrivate::init() { Q_Q(QQuickPopup); diff --git a/src/quicktemplates2/qquickpopup_p_p.h b/src/quicktemplates2/qquickpopup_p_p.h index c9f5e264..c8c83ada 100644 --- a/src/quicktemplates2/qquickpopup_p_p.h +++ b/src/quicktemplates2/qquickpopup_p_p.h @@ -142,12 +142,13 @@ private: QQuickPopupPrivate *m_popup; }; -class QQuickPopupPrivate : public QObjectPrivate, public QQuickItemChangeListener +class Q_AUTOTEST_EXPORT QQuickPopupPrivate : public QObjectPrivate, public QQuickItemChangeListener { Q_DECLARE_PUBLIC(QQuickPopup) public: QQuickPopupPrivate(); + ~QQuickPopupPrivate(); static QQuickPopupPrivate *get(QQuickPopup *popup) { -- cgit v1.2.3