Dumpers: Add a dumper for QPointer

It has an internal QWeakPointer<QObject>, which is not helpful. Cast to the
QPointer's template argument instead.

Change-Id: I9308c5eb9ea3867a682c4e4cba5d8041547981d1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Orgad Shaneh
2018-08-19 08:41:46 +03:00
committed by Orgad Shaneh
parent 2485eb1a8c
commit 9ed36db854
2 changed files with 20 additions and 2 deletions

View File

@@ -1806,7 +1806,10 @@ def qdump__QSharedPointer(d, value):
def qdump__QWeakPointer(d, value):
qdump_QWeakPointerHelper(d, value, True)
def qdump_QWeakPointerHelper(d, value, isWeak):
def qdump__QPointer(d, value):
qdump_QWeakPointerHelper(d, value['wp'], True, value.type[0])
def qdump_QWeakPointerHelper(d, value, isWeak, innerType = None):
if isWeak:
(d_ptr, val) = value.split('pp')
else:
@@ -1828,7 +1831,8 @@ def qdump_QWeakPointerHelper(d, value, isWeak):
d.check(strongref <= weakref)
d.check(weakref <= 10*1000*1000)
innerType = value.type[0]
if innerType is None:
innerType = value.type[0]
with Children(d):
short = d.putSubItem('data', d.createValue(val, innerType))
d.putIntItem('weakref', weakref)

View File

@@ -3110,6 +3110,20 @@ void tst_Dumpers::dumper_data()
+ Check("ppp.a", "1", "int");
QTest::newRow("QPointer")
<< Data("#include <QPointer>\n"
"#include <QTimer>\n",
"QTimer timer; unused(&timer);\n"
"QPointer<QTimer> ptr0; unused(&ptr0);\n"
"QPointer<QTimer> ptr1(&timer); unused(&ptr1);\n\n")
+ CoreProfile()
+ Check("ptr0", "(null)", "@QPointer<QTimer>")
+ Check("ptr1", "", "@QPointer<QTimer>");
QTest::newRow("QScopedPointer")
<< Data("#include <QScopedPointer>\n"
"#include <QString>\n",