Dumper: Fix dynamic type dumper for generic struct

Change-Id: Idb5ff44061afa8170afed3737f1be378165732f2
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Orgad Shaneh
2012-04-01 19:18:26 +03:00
committed by hjk
parent 26d0311b70
commit d6a2667dac

View File

@@ -1673,26 +1673,22 @@ class Dumper:
if self.useDynamicType and tryDynamic: if self.useDynamicType and tryDynamic:
dtypeName = dynamicTypeName(value.cast(type)) self.putItem(expensiveUpcast(value), False)
else: return
dtypeName = typeName
format = self.formats.get(self.currentIName) format = self.formats.get(self.currentIName)
if format is None: if format is None:
format = self.typeformats.get(stripForFormat(dtypeName)) format = self.typeformats.get(stripForFormat(typeName))
if self.useFancy and (format is None or format >= 1): if self.useFancy and (format is None or format >= 1):
self.putAddress(value.address) self.putAddress(value.address)
self.putType(dtypeName) self.putType(typeName)
if dtypeName in qqDumpers: if typeName in qqDumpers:
if tryDynamic: qqDumpers[typeName](self, value)
qqDumpers[dtypeName](self, expensiveUpcast(value))
else:
qqDumpers[dtypeName](self, value)
return return
nsStrippedType = self.stripNamespaceFromType(dtypeName)\ nsStrippedType = self.stripNamespaceFromType(typeName)\
.replace("::", "__") .replace("::", "__")
# The following block is only needed for D. # The following block is only needed for D.
@@ -1727,7 +1723,7 @@ class Dumper:
fields = extractFields(type) fields = extractFields(type)
#fields = type.fields() #fields = type.fields()
self.putType(dtypeName) self.putType(typeName)
self.putAddress(value.address) self.putAddress(value.address)
self.putValue("{...}") self.putValue("{...}")