From 894e75aaf0e2ce23d1fd3e50df9cf7c2bcb6f801 Mon Sep 17 00:00:00 2001 From: hjk <qthjk@ovi.com> Date: Wed, 15 Aug 2012 18:09:34 +0200 Subject: [PATCH] debugger: fix QStringList dumper Did not take into account a non-zero 'begin' after a takeFirst(). Change-Id: Icaa1f87c18b1dec7778c4322fd971c9becedcce1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: hjk <qthjk@ovi.com> --- share/qtcreator/dumper/qttypes.py | 3 +- .../debugger/simple/simple_test_app.cpp | 48 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py index 34aa82e59b1..363bce08c7c 100644 --- a/share/qtcreator/dumper/qttypes.py +++ b/share/qtcreator/dumper/qttypes.py @@ -1397,7 +1397,8 @@ def qdump__QStringList(d, value): d.putNumChild(size) if d.isExpanded(): innerType = lookupType(d.ns + "QString") - d.putArrayData(innerType, d_ptr["array"], size, 0) + innerTypePP = innerType.pointer().pointer() + d.putArrayData(innerType, d_ptr["array"].cast(innerTypePP) + begin, size, 0) def qdump__QTemporaryFile(d, value): diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp index 0423d29f8fe..8c108aad3aa 100644 --- a/tests/manual/debugger/simple/simple_test_app.cpp +++ b/tests/manual/debugger/simple/simple_test_app.cpp @@ -1152,6 +1152,51 @@ namespace qlist { dummyStatement(&big); } + void testQListIntTakeFirst() + { + QList<int> l; + l.append(0); + l.append(1); + l.append(2); + l.takeFirst(); + BREAK_HERE; + // Expand l. + // Check l <2 items> QList<int>. + // Check l.0 1 int. + // Continue. + dummyStatement(&l); + } + + void testQListStringTakeFirst() + { + QList<QString> l; + l.append("0"); + l.append("1"); + l.append("2"); + l.takeFirst(); + BREAK_HERE; + // Expand l. + // Check l <2 items> QList<QString>. + // Check l.0 "1" QString. + // Continue. + dummyStatement(&l); + } + + void testQStringListTakeFirst() + { + QStringList l; + l.append("0"); + l.append("1"); + l.append("2"); + l.takeFirst(); + BREAK_HERE; + // Expand l. + // Check l <2 items> QStringList. + // Check l.0 "1" QString. + // Continue. + dummyStatement(&l); + } + void testQListIntStar() { QList<int *> l; @@ -1320,6 +1365,9 @@ namespace qlist { testQListStdString(); testQListFoo(); testQListReverse(); + testQListIntTakeFirst(); + testQListStringTakeFirst(); + testQStringListTakeFirst(); } } // namespace qlist -- GitLab