in org.eclipse.sisu.inject/src/org/eclipse/sisu/space/asm/MethodWriter.java [1951:2008]
private void writeFrameTypes(final int start, final int end) {
for (int i = start; i < end; ++i) {
int t = frame[i];
int d = t & Frame.DIM;
if (d == 0) {
int v = t & Frame.BASE_VALUE;
switch (t & Frame.BASE_KIND) {
case Frame.OBJECT:
stackMap.putByte(7).putShort(
cw.newClass(cw.typeTable[v].strVal1));
break;
case Frame.UNINITIALIZED:
stackMap.putByte(8).putShort(cw.typeTable[v].intVal);
break;
default:
stackMap.putByte(v);
}
} else {
StringBuilder buf = new StringBuilder();
d >>= 28;
while (d-- > 0) {
buf.append('[');
}
if ((t & Frame.BASE_KIND) == Frame.OBJECT) {
buf.append('L');
buf.append(cw.typeTable[t & Frame.BASE_VALUE].strVal1);
buf.append(';');
} else {
switch (t & 0xF) {
case 1:
buf.append('I');
break;
case 2:
buf.append('F');
break;
case 3:
buf.append('D');
break;
case 9:
buf.append('Z');
break;
case 10:
buf.append('B');
break;
case 11:
buf.append('C');
break;
case 12:
buf.append('S');
break;
default:
buf.append('J');
}
}
stackMap.putByte(7).putShort(cw.newClass(buf.toString()));
}
}
}