private void locateLabel(String indent) { int labelKey = mAddress; Object labelValue = mLabels.get(labelKey); if (labelValue == null) { return; } int len = indent.length() - 4; if (len > 0) { print(indent.substring(0, len)); } print(labelValue); println(":"); List<ExceptionHandler> handlers = mCatchLocations.get(labelKey); if (handlers != null) { for (int i=0; i<handlers.size(); i++) { ExceptionHandler handler = handlers.get(i); print(indent, "try ("); print(getLabel(handler.getStartLocation().getLocation())); print(".."); print(getLabel(handler.getEndLocation().getLocation())); print(") catch ("); if (handler.getCatchType() == null) { print("..."); } else { disassemble(handler.getCatchType()); } println(")"); } } }
case Opcode.IF_ICMPGT: case Opcode.IF_ICMPLE: print(getLabel(mAddress + readShort())); break; case Opcode.GOTO_W: case Opcode.JSR_W: print(getLabel(mAddress + readInt())); break; ++mAddress; String defaultLocation = getLabel(opcodeAddress + readInt()); int[] cases; String[] locations; for (int i=0; i<caseCount; i++) { cases[i] = lowValue + i; locations[i] = getLabel(opcodeAddress + readInt()); for (int i=0; i<caseCount; i++) { cases[i] = readInt(); locations[i] = getLabel(opcodeAddress + readInt());
private void locateLabel(String indent) { int labelKey = mAddress; Object labelValue = mLabels.get(labelKey); if (labelValue == null) { return; } int len = indent.length() - 4; if (len > 0) { print(indent.substring(0, len)); } print(labelValue); println(":"); List<ExceptionHandler> handlers = mCatchLocations.get(labelKey); if (handlers != null) { for (int i=0; i<handlers.size(); i++) { ExceptionHandler handler = handlers.get(i); print(indent, "try ("); print(getLabel(handler.getStartLocation().getLocation())); print(".."); print(getLabel(handler.getEndLocation().getLocation())); print(") catch ("); if (handler.getCatchType() == null) { print("..."); } else { disassemble(handler.getCatchType()); } println(")"); } } }
case Opcode.IF_ICMPGT: case Opcode.IF_ICMPLE: print(getLabel(mAddress + readShort())); break; case Opcode.GOTO_W: case Opcode.JSR_W: print(getLabel(mAddress + readInt())); break; ++mAddress; String defaultLocation = getLabel(opcodeAddress + readInt()); int[] cases; String[] locations; for (int i=0; i<caseCount; i++) { cases[i] = lowValue + i; locations[i] = getLabel(opcodeAddress + readInt()); for (int i=0; i<caseCount; i++) { cases[i] = readInt(); locations[i] = getLabel(opcodeAddress + readInt());