IcTuple[] ic_local = getClassBands().getIcLocal()[classNum];
boolean ic_local_sent = false;
if(ic_local != null) {
ic_local_sent = true;
}
InnerClassesAttribute innerClassesAttribute = new InnerClassesAttribute("InnerClasses");
IcTuple[] ic_relevant = getIcBands().getRelevantIcTuples(fullName, cp);
IcTuple[] ic_stored = computeIcStored(ic_local, ic_relevant);
for(int index = 0; index < ic_stored.length; index++) {
String innerClassString = ic_stored[index].thisClassString();
String outerClassString = ic_stored[index].outerClassString();
String simpleClassName = ic_stored[index].simpleClassName();
CPClass innerClass = null;
CPUTF8 innerName = null;
CPClass outerClass = null;
if(ic_stored[index].isAnonymous()) {
innerClass = new CPClass(innerClassString);
} else {
innerClass = new CPClass(innerClassString);
innerName = new CPUTF8(simpleClassName, ClassConstantPool.DOMAIN_ATTRIBUTEASCIIZ);
}
if(ic_stored[index].isMember()) {
outerClass = new CPClass(outerClassString);
}
int flags = ic_stored[index].F;
innerClassesAttribute.addInnerClassesEntry(innerClass, outerClass, innerName, flags);
addInnerClassesAttr = true;
}
// If ic_local is sent and it's empty, don't add
// the inner classes attribute.
if(ic_local_sent && (ic_local.length == 0)) {