ArrayList methodAttributesList = methodAttributes[c][m];
// Make sure we add the code attribute in the right place
int indexForCodeAttr = 0;
for (Iterator iterator = methodAttributesList.iterator(); iterator
.hasNext();) {
Attribute attribute = (Attribute) iterator.next();
if(attribute instanceof SignatureAttribute ||
attribute instanceof DeprecatedAttribute ||
attribute instanceof RuntimeVisibleorInvisibleAnnotationsAttribute) {
indexForCodeAttr ++;
} else {
break;
}
}
methodAttributesList.add(indexForCodeAttr, codeAttr);
codeAttr.renumber(codeAttr.byteCodeOffsets);
ArrayList currentAttributes = (ArrayList) orderedCodeAttributes
.get(i);
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++;