break; case Frame.ITEM_UNINITIALIZED: frame[index] = createLabel(readUnsignedShort(currentOffset), labels); currentOffset += 2; break;
break; default: // Uninitialized frame[index] = createLabel(readUnsignedShort(v), labels); v += 2;
currentOffset += 6; context.currentLocalVariableAnnotationRangeStarts[i] = createLabel(startPc, context.currentMethodLabels); context.currentLocalVariableAnnotationRangeEnds[i] = createLabel(startPc + length, context.currentMethodLabels); context.currentLocalVariableAnnotationRangeIndices[i] = index;
int start = readUnsignedShort(u); int length = readUnsignedShort(u + 2); context.start[i] = createLabel(start, context.labels); context.end[i] = createLabel(start + length, context.labels); context.index[i] = readUnsignedShort(u + 4); u += 6;
createLabel(startPc, context.currentMethodLabels); createLabel(startPc + length, context.currentMethodLabels);
int start = readUnsignedShort(u + 3); int length = readUnsignedShort(u + 5); createLabel(start, context.labels); createLabel(start + length, context.labels); u += 6;
createLabel(context.currentFrameOffset, labels); return currentOffset;
createLabel(frame.offset, labels); return stackMap;
case Constants.IFNULL: case Constants.IFNONNULL: createLabel(bytecodeOffset + readShort(currentOffset + 1), labels); currentOffset += 3; break; case Constants.ASM_IFNULL: case Constants.ASM_IFNONNULL: createLabel(bytecodeOffset + readUnsignedShort(currentOffset + 1), labels); currentOffset += 3; break; case Constants.JSR_W: case Constants.ASM_GOTO_W: createLabel(bytecodeOffset + readInt(currentOffset + 1), labels); currentOffset += 5; break; createLabel(bytecodeOffset + readInt(currentOffset), labels); int numTableEntries = readInt(currentOffset + 8) - readInt(currentOffset + 4) + 1; currentOffset += 12; createLabel(bytecodeOffset + readInt(currentOffset), labels); currentOffset += 4; createLabel(bytecodeOffset + readInt(currentOffset), labels); int numSwitchCases = readInt(currentOffset + 4); currentOffset += 8;
int codeEnd = u + codeLength; Label[] labels = context.labels = new Label[codeLength + 2]; createLabel(codeLength + 1, labels); while (u < codeEnd) { int offset = u - codeStart; break; case ClassWriter.LABEL_INSN: createLabel(offset + readShort(u + 1), labels); u += 3; break; case ClassWriter.ASM_LABEL_INSN: createLabel(offset + readUnsignedShort(u + 1), labels); u += 3; break; case ClassWriter.LABELW_INSN: case ClassWriter.ASM_LABELW_INSN: createLabel(offset + readInt(u + 1), labels); u += 5; break; createLabel(offset + readInt(u), labels); for (int i = readInt(u + 8) - readInt(u + 4) + 1; i > 0; --i) { createLabel(offset + readInt(u + 12), labels); u += 4; createLabel(offset + readInt(u), labels); for (int i = readInt(u + 4); i > 0; --i) { createLabel(offset + readInt(u + 12), labels);