in src/main/java/org/apache/commons/compress/harmony/pack200/ClassBands.java [1248:1350]
private void writeCodeAttributeBands(final OutputStream out) throws IOException, Pack200Exception {
byte[] encodedBand = encodeFlags("codeFlags", longListToArray(codeFlags), Codec.UNSIGNED5, Codec.UNSIGNED5,
segmentHeader.have_code_flags_hi());
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from codeFlags[" + codeFlags.size() + "]");
// *code_attr_count :UNSIGNED5 [COUNT(1<<16,...)]
// *code_attr_indexes :UNSIGNED5 [SUM(*code_attr_count)]
encodedBand = encodeBandInt("code_attr_calls", code_attr_calls, Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_attr_calls[" + code_attr_calls.length + "]");
encodedBand = encodeBandInt("code_LineNumberTable_N", codeLineNumberTableN.toArray(), Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_N["
+ codeLineNumberTableN.size() + "]");
encodedBand = encodeBandInt("code_LineNumberTable_bci_P", integerListToArray(codeLineNumberTableBciP),
Codec.BCI5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_bci_P["
+ codeLineNumberTableBciP.size() + "]");
encodedBand = encodeBandInt("code_LineNumberTable_line", codeLineNumberTableLine.toArray(), Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LineNumberTable_line["
+ codeLineNumberTableLine.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTable_N", codeLocalVariableTableN.toArray(), Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_N["
+ codeLocalVariableTableN.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTable_bci_P", integerListToArray(codeLocalVariableTableBciP),
Codec.BCI5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_bci_P["
+ codeLocalVariableTableBciP.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTable_span_O", integerListToArray(codeLocalVariableTableSpanO),
Codec.BRANCH5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_span_O["
+ codeLocalVariableTableSpanO.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTable_name_RU", cpEntryListToArray(codeLocalVariableTableNameRU),
Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_name_RU["
+ codeLocalVariableTableNameRU.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTable_type_RS", cpEntryListToArray(codeLocalVariableTableTypeRS),
Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_type_RS["
+ codeLocalVariableTableTypeRS.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTable_slot", codeLocalVariableTableSlot.toArray(),
Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTable_slot["
+ codeLocalVariableTableSlot.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTypeTable_N", codeLocalVariableTypeTableN.toArray(),
Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_N["
+ codeLocalVariableTypeTableN.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTypeTable_bci_P",
integerListToArray(codeLocalVariableTypeTableBciP), Codec.BCI5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_bci_P["
+ codeLocalVariableTypeTableBciP.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTypeTable_span_O",
integerListToArray(codeLocalVariableTypeTableSpanO), Codec.BRANCH5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_span_O["
+ codeLocalVariableTypeTableSpanO.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTypeTable_name_RU",
cpEntryListToArray(codeLocalVariableTypeTableNameRU), Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_name_RU["
+ codeLocalVariableTypeTableNameRU.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTypeTable_type_RS",
cpEntryListToArray(codeLocalVariableTypeTableTypeRS), Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_type_RS["
+ codeLocalVariableTypeTableTypeRS.size() + "]");
encodedBand = encodeBandInt("code_LocalVariableTypeTable_slot", codeLocalVariableTypeTableSlot.toArray(),
Codec.UNSIGNED5);
out.write(encodedBand);
PackingUtils.log("Wrote " + encodedBand.length + " bytes from code_LocalVariableTypeTable_slot["
+ codeLocalVariableTypeTableSlot.size() + "]");
for (final NewAttributeBands bands : codeAttributeBands) {
bands.pack(out);
}
}