Fixed VmaDumpVis.py to respect new "Algorithm" parameter.
diff --git a/tools/VmaDumpVis/VmaDumpVis.py b/tools/VmaDumpVis/VmaDumpVis.py
index d033b28..a0d42ca 100644
--- a/tools/VmaDumpVis/VmaDumpVis.py
+++ b/tools/VmaDumpVis/VmaDumpVis.py
@@ -46,12 +46,11 @@
data = {}
-def ProcessBlock(dstBlockList, iBlockId, objBlock, bLinearAlgorithm):
+def ProcessBlock(dstBlockList, iBlockId, objBlock, sAlgorithm):
iBlockSize = int(objBlock['TotalBytes'])
arrSuballocs = objBlock['Suballocations']
dstBlockObj = {'ID': iBlockId, 'Size':iBlockSize, 'Suballocations':[]}
- if bLinearAlgorithm:
- dstBlockObj['LinearAlgorithm'] = True
+ dstBlockObj['Algorithm'] = sAlgorithm
for objSuballoc in arrSuballocs:
dstBlockObj['Suballocations'].append((objSuballoc['Type'], int(objSuballoc['Size']), int(objSuballoc['Usage']) if ('Usage' in objSuballoc) else 0))
dstBlockList.append(dstBlockObj)
@@ -187,18 +186,18 @@
iType = int(sType[5:])
typeData = GetDataForMemoryType(iType)
for sBlockId, objBlock in tType[1]['Blocks'].items():
- ProcessBlock(typeData['DefaultPoolBlocks'], int(sBlockId), objBlock, False)
+ ProcessBlock(typeData['DefaultPoolBlocks'], int(sBlockId), objBlock, '')
if 'Pools' in jsonSrc:
objPools = jsonSrc['Pools']
for sPoolId, objPool in objPools.items():
iType = int(objPool['MemoryTypeIndex'])
typeData = GetDataForMemoryType(iType)
objBlocks = objPool['Blocks']
- bLinearAlgorithm = 'LinearAlgorithm' in objPool and objPool['LinearAlgorithm']
+ sAlgorithm = objPool.get('Algorithm', '')
dstBlockArray = []
typeData['CustomPools'][int(sPoolId)] = dstBlockArray
for sBlockId, objBlock in objBlocks.items():
- ProcessBlock(dstBlockArray, int(sBlockId), objBlock, bLinearAlgorithm)
+ ProcessBlock(dstBlockArray, int(sBlockId), objBlock, sAlgorithm)
iImgSizeY, fPixelsPerByte = CalcParams()
@@ -247,11 +246,11 @@
index = 0
for iPoolId, listPool in dictMemType['CustomPools'].items():
for objBlock in listPool:
- if 'LinearAlgorithm' in objBlock:
- linearAlgorithmStr = ' (linear algorithm)';
+ if 'Algorithm' in objBlock:
+ sAlgorithm = ' (Algorithm: %s)' % (objBlock['Algorithm']);
else:
- linearAlgorithmStr = '';
- draw.text((IMG_MARGIN, y), "Custom pool %d%s block %d" % (iPoolId, linearAlgorithmStr, objBlock['ID']), fill=COLOR_TEXT_H2, font=font)
+ sAlgorithm = '';
+ draw.text((IMG_MARGIN, y), "Custom pool %d%s block %d" % (iPoolId, sAlgorithm, objBlock['ID']), fill=COLOR_TEXT_H2, font=font)
y += FONT_SIZE + IMG_MARGIN
DrawBlock(draw, y, objBlock)
y += MAP_SIZE + IMG_MARGIN
@@ -273,6 +272,6 @@
- Key is integer pool ID. Value is list of objects representing memory blocks, each containing dictionary with:
- Fixed key 'ID'. Value is int.
- Fixed key 'Size'. Value is int.
- - Fixed key 'LinearAlgorithm'. Optional. Value is True.
+ - Fixed key 'Algorithm'. Optional. Value is string.
- Fixed key 'Suballocations'. Value is list of tuples as above.
"""