From 017dd240d48747015e1475c39ed6145214107e33 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 7 Jun 2013 11:31:18 +0200 Subject: [PATCH] Debugger: Dumper fix for Qt 4 QMap, QStringRef Change-Id: I67fab7f78cf7718e37a9cd77af6fc9c6a9751c66 Reviewed-by: hjk --- share/qtcreator/dumper/qttypes.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py index f96903b4af9..40a7ac7e915 100644 --- a/share/qtcreator/dumper/qttypes.py +++ b/share/qtcreator/dumper/qttypes.py @@ -25,13 +25,11 @@ def qByteArrayData(d, value): alloc = int(private['alloc']) try: # Qt 5. Will fail on Qt 4 due to the missing 'offset' member. - offset = int(private['offset']) - addr = d.addressOf(private) + offset - data = createPointerValue(value, addr, d.charType()) - return data, size, alloc + addr = d.addressOf(private) + int(private['offset']) except: # Qt 4: - return private['data'], size, alloc + addr = private['data'] + return createPointerValue(value, addr, d.charType()), size, alloc qStringData = qByteArrayData @@ -830,7 +828,8 @@ def qdumpHelper__Qt4_QMap(d, value, forceLong): # its size is most likely the offset of the 'forward' member therein. # Or possibly 2 * sizeof(void *) nodeType = d.lookupType(d.ns + "QMapNode<%s, %s>" % (keyType, valueType)) - payloadSize = nodeType.sizeof - 2 * d.voidPtrSize + nodePointerType = nodeType.pointer() + payloadSize = nodeType.sizeof - 2 * nodePointerType.sizeof if isCompact: innerType = valueType @@ -839,9 +838,8 @@ def qdumpHelper__Qt4_QMap(d, value, forceLong): with Children(d, n, childType=innerType): for i in xrange(n): - itd = it.dereference() - base = it.cast(d.charPtr()) - payloadSize - node = base.cast(nodeType.pointer()).dereference() + base = it.cast(d.charPtrType()) - payloadSize + node = base.cast(nodePointerType).dereference() with SubItem(d, i): d.putField("iname", d.currentIName) if isCompact: