|
@@ -31,18 +31,28 @@ public class PrototypeDump implements Opcodes {
|
|
|
fieldVisitor.visitEnd();
|
|
fieldVisitor.visitEnd();
|
|
|
}
|
|
}
|
|
|
{
|
|
{
|
|
|
- methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
|
|
|
|
|
|
|
+ methodVisitor = classWriter.visitMethod(ACC_PUBLIC, "<init>", "(Ljava/lang/Object;)V", null, null);
|
|
|
methodVisitor.visitCode();
|
|
methodVisitor.visitCode();
|
|
|
Label label0 = new Label();
|
|
Label label0 = new Label();
|
|
|
methodVisitor.visitLabel(label0);
|
|
methodVisitor.visitLabel(label0);
|
|
|
- methodVisitor.visitLineNumber(6, label0);
|
|
|
|
|
|
|
+ methodVisitor.visitLineNumber(10, label0);
|
|
|
methodVisitor.visitVarInsn(ALOAD, 0);
|
|
methodVisitor.visitVarInsn(ALOAD, 0);
|
|
|
methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
|
|
methodVisitor.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
|
|
|
- methodVisitor.visitInsn(RETURN);
|
|
|
|
|
Label label1 = new Label();
|
|
Label label1 = new Label();
|
|
|
methodVisitor.visitLabel(label1);
|
|
methodVisitor.visitLabel(label1);
|
|
|
- methodVisitor.visitLocalVariable("this", "Lnet/ranides/assira/asm/Prototype;", null, label0, label1, 0);
|
|
|
|
|
- methodVisitor.visitMaxs(1, 1);
|
|
|
|
|
|
|
+ methodVisitor.visitLineNumber(11, label1);
|
|
|
|
|
+ methodVisitor.visitVarInsn(ALOAD, 0);
|
|
|
|
|
+ methodVisitor.visitVarInsn(ALOAD, 1);
|
|
|
|
|
+ methodVisitor.visitFieldInsn(PUTFIELD, "net/ranides/assira/asm/Prototype", "that", "Ljava/lang/Object;");
|
|
|
|
|
+ Label label2 = new Label();
|
|
|
|
|
+ methodVisitor.visitLabel(label2);
|
|
|
|
|
+ methodVisitor.visitLineNumber(12, label2);
|
|
|
|
|
+ methodVisitor.visitInsn(RETURN);
|
|
|
|
|
+ Label label3 = new Label();
|
|
|
|
|
+ methodVisitor.visitLabel(label3);
|
|
|
|
|
+ methodVisitor.visitLocalVariable("this", "Lnet/ranides/assira/asm/Prototype;", null, label0, label3, 0);
|
|
|
|
|
+ methodVisitor.visitLocalVariable("that", "Ljava/lang/Object;", null, label0, label3, 1);
|
|
|
|
|
+ methodVisitor.visitMaxs(2, 2);
|
|
|
methodVisitor.visitEnd();
|
|
methodVisitor.visitEnd();
|
|
|
}
|
|
}
|
|
|
{
|
|
{
|
|
@@ -50,7 +60,7 @@ public class PrototypeDump implements Opcodes {
|
|
|
methodVisitor.visitCode();
|
|
methodVisitor.visitCode();
|
|
|
Label label0 = new Label();
|
|
Label label0 = new Label();
|
|
|
methodVisitor.visitLabel(label0);
|
|
methodVisitor.visitLabel(label0);
|
|
|
- methodVisitor.visitLineNumber(11, label0);
|
|
|
|
|
|
|
+ methodVisitor.visitLineNumber(15, label0);
|
|
|
methodVisitor.visitTypeInsn(NEW, "net/ranides/assira/asm/PrototypeSForm");
|
|
methodVisitor.visitTypeInsn(NEW, "net/ranides/assira/asm/PrototypeSForm");
|
|
|
methodVisitor.visitInsn(DUP);
|
|
methodVisitor.visitInsn(DUP);
|
|
|
methodVisitor.visitLdcInsn(Type.getType("Lnet/ranides/assira/reflection/util/PackageScanner;"));
|
|
methodVisitor.visitLdcInsn(Type.getType("Lnet/ranides/assira/reflection/util/PackageScanner;"));
|