operandManager, exceptionTable);
ArrayList methodAttributesList = methodAttributes[c][m];
// Make sure we add the code attribute in the right place
int indexForCodeAttr = 0;
for (int index = 0; index < methodAttributesList.size(); index++) {
Attribute attribute = (Attribute) methodAttributesList.get(index);
if((attribute instanceof NewAttribute && ((NewAttribute)attribute).getLayoutIndex() < 15)) {
indexForCodeAttr ++;
} else {
break;
}
}
methodAttributesList.add(indexForCodeAttr, codeAttr);
codeAttr.renumber(codeAttr.byteCodeOffsets);
List currentAttributes;
if (allCodeHasFlags) {
currentAttributes = (List) orderedCodeAttributes.get(i);
} else {
if (codeHasFlags[i]) {
currentAttributes = (List) orderedCodeAttributes
.get(codeAttributeIndex);
codeAttributeIndex++;
} else {
currentAttributes = Collections.EMPTY_LIST;
}
}
for (int index = 0; index < currentAttributes.size(); index++) {
Attribute currentAttribute = (Attribute) currentAttributes
.get(index);
codeAttr.addAttribute(currentAttribute);
// Fix up the line numbers if needed
if (currentAttribute.hasBCIRenumbering()) {
((BCIRenumberedAttribute) currentAttribute)
.renumber(codeAttr.byteCodeOffsets);
}
}
i++;