aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2016-10-02 19:53:14 +0200
committerMarc Mutz <marc.mutz@kdab.com>2016-10-02 18:31:46 +0000
commit84d8f07b6d3133dc10a83f0b64c39a5948334302 (patch)
treea933f40380d7d8e56fcd7914a6b8d0609ba702c0 /src
parent4fb88d0f34e030223c75fc8903ef5d8325b649ed (diff)
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 <jpnurmi@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/quicktemplates2/qquickpopup.cpp4
-rw-r--r--src/quicktemplates2/qquickpopup_p_p.h3
2 files changed, 6 insertions, 1 deletions
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)
{