tst_QObject: don't leak QtDeclarative::theData
Pick-to: 6.8 Change-Id: I347f7558a3b278590b11fffdc48877791c29ca60 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
7944ee7b3a
commit
ee3933a3dd
@ -8646,25 +8646,25 @@ signals:
|
|||||||
correctly guarded. QTBUG-105286
|
correctly guarded. QTBUG-105286
|
||||||
*/
|
*/
|
||||||
namespace QtDeclarative {
|
namespace QtDeclarative {
|
||||||
static QAbstractDeclarativeData *theData;
|
static std::unique_ptr<QAbstractDeclarativeData> theData;
|
||||||
|
|
||||||
static void destroyed(QAbstractDeclarativeData *data, QObject *)
|
static void destroyed(QAbstractDeclarativeData *data, QObject *)
|
||||||
{
|
{
|
||||||
QCOMPARE(data, theData);
|
QCOMPARE(data, theData.get());
|
||||||
}
|
}
|
||||||
static void signalEmitted(QAbstractDeclarativeData *data, QObject *, int, void **)
|
static void signalEmitted(QAbstractDeclarativeData *data, QObject *, int, void **)
|
||||||
{
|
{
|
||||||
QCOMPARE(data, theData);
|
QCOMPARE(data, theData.get());
|
||||||
}
|
}
|
||||||
// we can't use QCOMPARE in the next two functions, as they don't return void
|
// we can't use QCOMPARE in the next two functions, as they don't return void
|
||||||
static int receivers(QAbstractDeclarativeData *data, const QObject *, int)
|
static int receivers(QAbstractDeclarativeData *data, const QObject *, int)
|
||||||
{
|
{
|
||||||
QTest::qCompare(data, theData, "data", "theData", __FILE__, __LINE__);
|
QTest::qCompare(data, theData.get(), "data", "theData", __FILE__, __LINE__);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static bool isSignalConnected(QAbstractDeclarativeData *data, const QObject *, int)
|
static bool isSignalConnected(QAbstractDeclarativeData *data, const QObject *, int)
|
||||||
{
|
{
|
||||||
QTest::qCompare(data, theData, "data", "theData", __FILE__, __LINE__);
|
QTest::qCompare(data, theData.get(), "data", "theData", __FILE__, __LINE__);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8705,7 +8705,8 @@ void tst_QObject::declarativeData()
|
|||||||
|
|
||||||
QtDeclarative::Object p;
|
QtDeclarative::Object p;
|
||||||
QObjectPrivate *priv = QObjectPrivate::get(&p);
|
QObjectPrivate *priv = QObjectPrivate::get(&p);
|
||||||
priv->declarativeData = QtDeclarative::theData = new QAbstractDeclarativeData;
|
priv->declarativeData = new QAbstractDeclarativeData;
|
||||||
|
QtDeclarative::theData.reset(priv->declarativeData);
|
||||||
|
|
||||||
connect(&p, &QtDeclarative::Object::theSignal, &p, []{
|
connect(&p, &QtDeclarative::Object::theSignal, &p, []{
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user