question: void writeLocalInnerClasses ( Class cls ) throws IOException { List < InnerClass > localICs = cls . getInnerClasses ( ) ; class_InnerClasses_N . putInt ( localICs . size ( ) ) ; for ( InnerClass ic : localICs ) { class_InnerClasses_RC . putRef ( ic . thisClass ) ; if ( ic . equals ( pkg . getGlobalInnerClass ( ic . thisClass ) ) ) { class_InnerClasses_F . putInt ( 0 ) ; } else { int flags = ic . flags ; if ( flags == 0 ) flags = ACC_IC_LONG_FORM ; class_InnerClasses_F . putInt ( flags ) ; class_InnerClasses_outer_RCN . putRef ( ic . outerClass ) ; class_InnerClasses_name_RUN . putRef ( ic . name ) ; } } }
target:  If there are any extra InnerClasses entries to write which are not already implied by the global table, put them into a local attribute.  This is expected to be rare.