From 15b0082b3a34e3a7068f5ee2dbbc9ab1046c7ba2 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Thu, 2 Sep 2010 10:47:56 +0200
Subject: [PATCH] debugger: fix QObject property dumper for namespaced qt

---
 share/qtcreator/gdbmacros/gdbmacros.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index 7e5598c9973..d303c22ef35 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.py
+++ b/share/qtcreator/gdbmacros/gdbmacros.py
@@ -669,11 +669,12 @@ def qdump__QObject(d, item):
             d.putNumChild(propertyCount)
 
             if d.isExpandedIName(item.iname + ".properties"):
-                with Children(d, [propertyCount, 500]):
-                    # FIXME: Make this global. Don't leak.
-                    gdb.execute("set $d = (QVariant*)malloc(sizeof(QVariant))")
-                    gdb.execute("set $d.d.is_shared = 0")
+                # FIXME: Make this global. Don't leak.
+                variant = "'%sQVariant'" % d.ns
+                gdb.execute("set $d = (%s*)malloc(sizeof(%s))" % (variant, variant))
+                gdb.execute("set $d.d.is_shared = 0")
 
+                with Children(d, [propertyCount, 500]):
                     # Dynamic properties.
                     if dynamicPropertyCount != 0:
                         dummyType = lookupType("void").pointer().pointer()
@@ -692,8 +693,8 @@ def qdump__QObject(d, item):
                                 qq = q.cast(valuesType.pointer().pointer())
                                 qq = qq.dereference();
                                 d.putField("addr", cleanAddress(qq))
-                                d.putField("exp", "*('%sQVariant'*)%s"
-                                     % (d.ns, cleanAddress(qq)))
+                                d.putField("exp", "*(%s*)%s"
+                                     % (variant, cleanAddress(qq)))
                                 name = "%s.properties.%d" % (item.iname, i)
                                 t = qdump__QVariant(d, Item(qq, name))
                                 # Override the "QVariant (foo)" output
-- 
GitLab