public Collection <DataItemNode> GetDataItemNodes() { var nodes = new Collection <DataItemNode>(); Procedure curProc; DataItemNode curNode = null; foreach (var item in imageMap.Items.Values) { int numLines; var startAddr = item.Address; var endAddr = item.Address + item.Size; if (item is ImageMapBlock bi) { numLines = CountDisassembledLines(bi); curProc = bi.Block.Procedure; } else { numLines = CountMemoryLines(item); curProc = null; } if (curNode == null || curNode.Proc != curProc || curProc == null) { curNode = new DataItemNode(curProc, numLines) { StartAddress = startAddr, EndAddress = endAddr }; nodes.Add(curNode); } else { curNode.NumLines += numLines; curNode.EndAddress = endAddr; } } return(nodes); }
public Collection<DataItemNode> GetDataItemNodes() { var nodes = new Collection<DataItemNode>(); Procedure curProc = null; DataItemNode curNode = null; foreach (var item in program.ImageMap.Items.Values) { int numLines; var startAddr = item.Address; var endAddr = item.Address + item.Size; var bi = item as ImageMapBlock; if (bi != null) { numLines = CountDisassembledLines(bi); curProc = bi.Block.Procedure; } else { numLines = CountMemoryLines(item); curProc = null; } if (curNode == null || curNode.Proc != curProc || curProc == null) { curNode = new DataItemNode(curProc, numLines); curNode.StartAddress = startAddr; curNode.EndAddress = endAddr; nodes.Add(curNode); } else { curNode.NumLines += numLines; curNode.EndAddress = endAddr; } } return nodes; }