From 6f09752db72dfecf87e561669e71b1f4d9469858 Mon Sep 17 00:00:00 2001 From: Adam Sawicki Date: Fri, 21 Sep 2018 15:30:55 +0200 Subject: [PATCH] Fixed VmaDumpVis.py to respect new "Algorithm" parameter. --- tools/VmaDumpVis/VmaDumpVis.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) 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 @@ args = argParser.parse_args() 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 @@ if 'DefaultPools' in jsonSrc: 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 @@ for iMemTypeIndex in sorted(data.keys()): 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 @@ Main data structure - variable `data` - is a dictionary. Key is integer - memory - 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. """