From 540c6de10830326c89da4f4c127551a97c2518a5 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Wed, 10 Dec 2008 16:48:12 +0100
Subject: [PATCH] work on std::list dumper

---
 bin/gdbmacros/gdbmacros.cpp             | 11 ++++-------
 tests/manual/gdbdebugger/simple/app.cpp |  5 +++++
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/bin/gdbmacros/gdbmacros.cpp b/bin/gdbmacros/gdbmacros.cpp
index abca7066ee4..9ea2a9aff56 100644
--- a/bin/gdbmacros/gdbmacros.cpp
+++ b/bin/gdbmacros/gdbmacros.cpp
@@ -661,11 +661,8 @@ void QDumper::endHash()
 
 void QDumper::putEllipsis()
 {
-    d.beginHash();
-    P(d, "name", "Warning:");
-    P(d, "value", "<incomplete>");
-    P(d, "type", d.innertype);
-    d.endHash();
+    addCommaIfNeeded();
+    *this << "{name=\"<incomplete>\",value=\"\",type=\"" << innertype << "\"}";
 }
 
 //
@@ -2120,7 +2117,7 @@ static void qDumpStdList(QDumper &d)
 
     int nn = 0;
     std::list<int>::const_iterator it = list.begin();
-    for (nn < 101 && it != list.end(); ++nn, ++it)
+    for (; nn < 101 && it != list.end(); ++nn, ++it)
         qCheckAccess(it.operator->());
 
     if (nn > 100)
@@ -2135,7 +2132,7 @@ static void qDumpStdList(QDumper &d)
         const char *stripped =
             isPointerType(d.innertype) ? strippedInnerType.data() : 0;
         d << ",children=[";
-        std::list<int>::const_iterator it = list.begin();
+        it = list.begin();
         for (int i = 0; i < 1000 && it != list.end(); ++i, ++it) {
             d.beginHash();
             P(d, "name", "[" << i << "]");
diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp
index 35933ec5a20..dbc7eebcd3c 100644
--- a/tests/manual/gdbdebugger/simple/app.cpp
+++ b/tests/manual/gdbdebugger/simple/app.cpp
@@ -73,6 +73,9 @@ uint qHash(const double & f)
     return int(f);
 }
 
+#define X myns
+X::QString str;
+
 class  Foo
 {
 public:
@@ -623,6 +626,8 @@ void testQVariant3()
 
 void testQVector()
 {
+    QVector<int> big(10000);
+
     QVector<Foo *> plist;
     plist.append(new Foo(1));
     plist.append(0);
-- 
GitLab