@Override public void visitEnd() { // Visit all the methods for (Iterator<?> it = methods.iterator(); it.hasNext(); ) { MethodNode method = (MethodNode) it.next(); visitMethod(method); } // Delete all the fields used as specialization variables for (ListIterator<?> lit = fields.listIterator(); lit.hasNext(); ) { FieldNode field = (FieldNode) lit.next(); if ((field.access & Opcodes.ACC_STATIC) != 0 && variables.containsKey(field.name)) { lit.remove(); } } super.visitEnd(); }
private ClassNode createClass(String className) { ClassNode classNode = new ClassNode(); classNode.visit(49, ACC_SUPER + ACC_PUBLIC, className, null, "java/lang/Object", null); MethodVisitor mv = classNode.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false); mv.visitInsn(RETURN); mv.visitMaxs(1, 1); mv.visitEnd(); classNode.visitEnd(); return classNode; }
mv.visitEnd(); cw.visitEnd();
mv.visitEnd(); cw.visitEnd();
mv.visitEnd(); cw.visitEnd();
mv.visitEnd(); cw.visitEnd();
mv.visitEnd(); cw.visitEnd();