cv.visitField(0, "boo", "LBoo;", null, null).visitEnd();
cv.visitField(0, "boo1", "[LBoo;", null, null).visitEnd();
cv.visitField(0, "s", "Ljava/lang/String;", null, null).visitEnd();
cv.visitField(0, "i", "I", null, null).visitEnd();
MethodVisitor mv;
mv = cv.visitMethod(0, "foo", "()V", null, null);
mv.visitCode();
mv.visitFieldInsn(GETFIELD, "Doo", "boo", "LBoo;");
mv.visitLdcInsn(Type.getType("LBoo;"));
mv.visitLdcInsn(Type.getType("[LDoo;"));
mv.visitLdcInsn(Type.getType("[I"));
mv.visitLdcInsn(Type.getType("J"));
mv.visitTypeInsn(ANEWARRAY, "Boo");
mv.visitTypeInsn(ANEWARRAY, "[LDoo;");
mv.visitTypeInsn(ANEWARRAY, "[I");
mv.visitTypeInsn(ANEWARRAY, "J");
mv.visitMultiANewArrayInsn("[[LBoo;", 2);
mv.visitMethodInsn(INVOKEVIRTUAL,
"Doo",
"goo",
"([[LBoo;LCoo;LDoo;)LCoo;");
mv.visitFrame(Opcodes.F_NEW, 0, new Object[5], 0, new Object[10]);
mv.visitFrame(Opcodes.F_NEW,
3, new Object[] { "Boo", "Coo", "Doo" },
0, new Object[0]);
mv.visitFrame(Opcodes.F_NEW,
4, new Object[] {Opcodes.INTEGER, "Coo", Opcodes.INTEGER, "Doo" },
0, new Object[0]);
mv.visitFrame(Opcodes.F_NEW,
2, new Object[] {Opcodes.INTEGER, Opcodes.INTEGER },
0, new Object[0]);
Label l = new Label();
mv.visitLocalVariable("boo", "LBoo;", null, l, l, 1);
mv.visitLocalVariable("boo1", "[LBoo;", null, l, l, 3);
mv.visitLocalVariable("boo2", "[[LBoo;", null, l, l, 4);
mv.visitMaxs(0, 0);
mv.visitTryCatchBlock(l, l, l, "Coo");
mv.visitEnd();
mv = cv.visitMethod(0,
"goo",
"([[LBoo;LCoo;LDoo;)V",
null,
new String[] { "I", "J" });
mv.visitEnd();
cv.visitEnd();
}