1 19 20 package asm2; 21 22 import org.objectweb.asm.*; 23 import org.objectweb.asm.attrs.*; 24 import java.util.*; 25 26 27 public class Calculator1Dump implements Constants { 28 29 public static byte[] dump () throws Exception { 30 31 ClassWriter cw = new ClassWriter(false); 32 CodeVisitor cv; 33 34 cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, 35 "Calculator1", "java/lang/Object", null, 36 "Calculator1.java"); 37 38 cw.visitField(ACC_PRIVATE, "result", "I", 39 null, null); 40 41 { 42 cv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", 43 null, null); 44 cv.visitVarInsn(ALOAD, 0); 45 cv.visitMethodInsn(INVOKESPECIAL, 46 "java/lang/Object", "<init>", "()V"); 47 cv.visitInsn(RETURN); 48 cv.visitMaxs(1, 1); 49 } 50 { 51 cv = cw.visitMethod(ACC_PRIVATE, "sum", "(II)V", 52 null, null); 53 cv.visitVarInsn(ALOAD, 0); 54 cv.visitVarInsn(ILOAD, 1); 55 cv.visitVarInsn(ILOAD, 2); 56 cv.visitInsn(IADD); 57 cv.visitFieldInsn(PUTFIELD, "Calculator1", 58 "result", "I"); 59 cv.visitInsn(RETURN); 60 cv.visitMaxs(3, 3); 61 } 62 cw.visitEnd(); 63 64 return cw.toByteArray(); 65 } 66 } 67 | Popular Tags |