int[] wideByteCodeArray = new int[wideByteCodes.size()];
for (int index = 0; index < wideByteCodeArray.length; index++) {
wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
.intValue();
}
OperandManager operandManager = new OperandManager(bcCaseCount,
bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef,
wideByteCodeArray);
operandManager.setSegment(segment);
int i = 0;
ArrayList orderedCodeAttributes = segment.getClassBands()
.getOrderedCodeAttributes();
int codeAttributeIndex = 0;
// Exception table fields
int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
int[][] handlerStartPCs = segment.getClassBands()
.getCodeHandlerStartP();
int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
int[][] handlerCatchPCs = segment.getClassBands()
.getCodeHandlerCatchPO();
int[][] handlerClassTypes = segment.getClassBands()
.getCodeHandlerClassRCN();
boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
boolean[] codeHasFlags = segment.getClassBands().getCodeHasAttributes();
for (int c = 0; c < classCount; c++) {
int numberOfMethods = methodFlags[c].length;
for (int m = 0; m < numberOfMethods; m++) {
long methodFlag = methodFlags[c][m];
if (!abstractModifier.matches(methodFlag)
&& !nativeModifier.matches(methodFlag)) {
int maxStack = codeMaxStack[i];
int maxLocal = codeMaxNALocals[i];
if (!staticModifier.matches(methodFlag))
maxLocal++; // one for 'this' parameter
// I believe this has to take wide arguments into account
maxLocal += SegmentUtils
.countInvokeInterfaceArgs(methodDescr[c][m]);
String[] cpClass = segment.getCpBands().getCpClass();
operandManager.setCurrentClass(cpClass[segment
.getClassBands().getClassThisInts()[c]]);
operandManager.setSuperClass(cpClass[segment
.getClassBands().getClassSuperInts()[c]]);
List exceptionTable = new ArrayList();
if (handlerCount != null) {
for (int j = 0; j < handlerCount[i]; j++) {
int handlerClass = handlerClassTypes[i][j] - 1;