Unbreak ubsan developer-build
Clang 3.8's undefined-behavior sanitizer checks that the declared type of the object is a base class of the dynamic type of the object on each access to a member of a class type. It therefore requires the typeinfo for these types, which for polymorphic types is emitted in the TU where the vtable is emitted, too. QDBusConnectionPrivate is a polymorphic non-exported class, so this failed at link-time. Ditto for the other case. Fix by autotest-exporting the classes. Also, where applicable, de-inline the dtors, so the vtable (and typeinfo) are pinned to one TU, and the ctor, just because it's the correct thing to do. Change-Id: I991f81f88d2a48e85d94d9f3ac61473c0b7056d3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
2982d327f7
commit
dbc3d8e15e
@ -107,7 +107,7 @@ public:
|
|||||||
// QDBusConnectionPrivate holds the DBusConnection and
|
// QDBusConnectionPrivate holds the DBusConnection and
|
||||||
// can have many QDBusConnection objects referring to it
|
// can have many QDBusConnection objects referring to it
|
||||||
|
|
||||||
class QDBusConnectionPrivate: public QObject
|
class Q_AUTOTEST_EXPORT QDBusConnectionPrivate: public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
@ -55,6 +55,11 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
typedef QSqlTableModelSql Sql;
|
typedef QSqlTableModelSql Sql;
|
||||||
|
|
||||||
|
QSqlTableModelPrivate::~QSqlTableModelPrivate()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*! \internal
|
/*! \internal
|
||||||
Populates our record with values.
|
Populates our record with values.
|
||||||
*/
|
*/
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
class QSqlTableModelPrivate: public QSqlQueryModelPrivate
|
class Q_AUTOTEST_EXPORT QSqlTableModelPrivate: public QSqlQueryModelPrivate
|
||||||
{
|
{
|
||||||
Q_DECLARE_PUBLIC(QSqlTableModel)
|
Q_DECLARE_PUBLIC(QSqlTableModel)
|
||||||
|
|
||||||
@ -69,6 +69,8 @@ public:
|
|||||||
strategy(QSqlTableModel::OnRowChange),
|
strategy(QSqlTableModel::OnRowChange),
|
||||||
busyInsertingRows(false)
|
busyInsertingRows(false)
|
||||||
{}
|
{}
|
||||||
|
~QSqlTableModelPrivate();
|
||||||
|
|
||||||
void clear();
|
void clear();
|
||||||
virtual void clearCache();
|
virtual void clearCache();
|
||||||
QSqlRecord record(const QVector<QVariant> &values) const;
|
QSqlRecord record(const QVector<QVariant> &values) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user