private static Integer getCommonIDom(Integer key1, Integer key2, VBStyleCollection<Integer, Integer> orderedIDoms) { if (key1 == null) { return key2; } else if (key2 == null) { return key1; } int index1 = orderedIDoms.getIndexByKey(key1); int index2 = orderedIDoms.getIndexByKey(key2); while (index1 != index2) { if (index1 > index2) { key1 = orderedIDoms.getWithKey(key1); index1 = orderedIDoms.getIndexByKey(key1); } else { key2 = orderedIDoms.getWithKey(key2); index2 = orderedIDoms.getIndexByKey(key2); } } return key1; }
public int getPointerByAbsOffset(int offset) { Integer absoffset = offset; if (collinstr.containsKey(absoffset)) { return collinstr.getIndexByKey(absoffset); } else { return -1; } }
private static IGraphNode getCommonIDom(IGraphNode node1, IGraphNode node2, VBStyleCollection<IGraphNode, IGraphNode> orderedIDoms) { IGraphNode nodeOld; if (node1 == null) { return node2; } else if (node2 == null) { return node1; } int index1 = orderedIDoms.getIndexByKey(node1); int index2 = orderedIDoms.getIndexByKey(node2); while (index1 != index2) { if (index1 > index2) { nodeOld = node1; node1 = orderedIDoms.getWithKey(node1); if (nodeOld == node1) { // no idom - root or merging point return null; } index1 = orderedIDoms.getIndexByKey(node1); } else { nodeOld = node2; node2 = orderedIDoms.getWithKey(node2); if (nodeOld == node2) { // no idom - root or merging point return null; } index2 = orderedIDoms.getIndexByKey(node2); } } return node1; }
public int getPointerByRelOffset(int offset) { Integer absoffset = collinstr.getKey(pointer) + offset; if (collinstr.containsKey(absoffset)) { return collinstr.getIndexByKey(absoffset); } else { return -1; } }
int statindex = stats.getIndexByKey(oldstat.id); stats.removeWithKey(oldstat.id); stats.addWithKeyAndIndex(statindex, newstat, newstat.id);
private static Integer getCommonIDom(Integer key1, Integer key2, VBStyleCollection<Integer, Integer> orderedIDoms) { if (key1 == null) { return key2; } else if (key2 == null) { return key1; } int index1 = orderedIDoms.getIndexByKey(key1); int index2 = orderedIDoms.getIndexByKey(key2); while (index1 != index2) { if (index1 > index2) { key1 = orderedIDoms.getWithKey(key1); index1 = orderedIDoms.getIndexByKey(key1); } else { key2 = orderedIDoms.getWithKey(key2); index2 = orderedIDoms.getIndexByKey(key2); } } return key1; }
public int getPointerByAbsOffset(int offset) { Integer absoffset = new Integer(offset); if (collinstr.containsKey(absoffset)) { return collinstr.getIndexByKey(absoffset); } else { return -1; } }
private static IGraphNode getCommonIDom(IGraphNode node1, IGraphNode node2, VBStyleCollection<IGraphNode, IGraphNode> orderedIDoms) { IGraphNode nodeOld; if (node1 == null) { return node2; } else if (node2 == null) { return node1; } int index1 = orderedIDoms.getIndexByKey(node1); int index2 = orderedIDoms.getIndexByKey(node2); while (index1 != index2) { if (index1 > index2) { nodeOld = node1; node1 = orderedIDoms.getWithKey(node1); if (nodeOld == node1) { // no idom - root or merging point return null; } index1 = orderedIDoms.getIndexByKey(node1); } else { nodeOld = node2; node2 = orderedIDoms.getWithKey(node2); if (nodeOld == node2) { // no idom - root or merging point return null; } index2 = orderedIDoms.getIndexByKey(node2); } } return node1; }
public void setPointerByAbsOffset(int offset) { Integer absoffset = new Integer(collinstr.getKey(pointer).intValue() + offset); if (collinstr.containsKey(absoffset)) { pointer = collinstr.getIndexByKey(absoffset); } }
public int getPointerByRelOffset(int offset) { Integer absoffset = new Integer(collinstr.getKey(pointer).intValue() + offset); if (collinstr.containsKey(absoffset)) { return collinstr.getIndexByKey(absoffset); } else { return -1; } }
int statindex = stats.getIndexByKey(oldstat.id); stats.removeWithKey(oldstat.id); stats.addWithKeyAndIndex(statindex, newstat, newstat.id);