Debugger: Dumper fix for Qt 4

QMap, QStringRef

Change-Id: I67fab7f78cf7718e37a9cd77af6fc9c6a9751c66
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-06-07 11:31:18 +02:00
parent 9155e14db2
commit 017dd240d4

View File

@@ -25,13 +25,11 @@ def qByteArrayData(d, value):
alloc = int(private['alloc']) alloc = int(private['alloc'])
try: try:
# Qt 5. Will fail on Qt 4 due to the missing 'offset' member. # Qt 5. Will fail on Qt 4 due to the missing 'offset' member.
offset = int(private['offset']) addr = d.addressOf(private) + int(private['offset'])
addr = d.addressOf(private) + offset
data = createPointerValue(value, addr, d.charType())
return data, size, alloc
except: except:
# Qt 4: # Qt 4:
return private['data'], size, alloc addr = private['data']
return createPointerValue(value, addr, d.charType()), size, alloc
qStringData = qByteArrayData 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. # its size is most likely the offset of the 'forward' member therein.
# Or possibly 2 * sizeof(void *) # Or possibly 2 * sizeof(void *)
nodeType = d.lookupType(d.ns + "QMapNode<%s, %s>" % (keyType, valueType)) 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: if isCompact:
innerType = valueType innerType = valueType
@@ -839,9 +838,8 @@ def qdumpHelper__Qt4_QMap(d, value, forceLong):
with Children(d, n, childType=innerType): with Children(d, n, childType=innerType):
for i in xrange(n): for i in xrange(n):
itd = it.dereference() base = it.cast(d.charPtrType()) - payloadSize
base = it.cast(d.charPtr()) - payloadSize node = base.cast(nodePointerType).dereference()
node = base.cast(nodeType.pointer()).dereference()
with SubItem(d, i): with SubItem(d, i):
d.putField("iname", d.currentIName) d.putField("iname", d.currentIName)
if isCompact: if isCompact: