Examples of MethodNode


Examples of org.objectweb.asm.tree.MethodNode

public class RemoveAddZeroTransformerTest extends
    RemoveAddZeroAdapterTest {

  public void test() {
    TraceMethodVisitor tmv = new TraceMethodVisitor(null);
    MethodNode mn = new MethodNode(0, null, null, null, null);
    mn.visitCode();
    mn.visitVarInsn(ILOAD, 1);
    mn.visitInsn(ICONST_0);
    mn.visitInsn(IADD);
    mn.visitInsn(IRETURN);
    mn.visitMaxs(0, 0);
    mn.visitEnd();
    new RemoveAddZeroTransformer(null).transform(mn);
    mn.accept(tmv);
    checkMethod(tmv);
  }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

public class RemoveLoadStoreTransformerTest extends
    RemoveLoadStoreAdapterTest {

  public void test() {
    TraceMethodVisitor tmv = new TraceMethodVisitor(null);
    MethodNode mn = new MethodNode(0, null, null, null, null);
    mn.visitCode();
    mn.visitVarInsn(ILOAD, 1);
    mn.visitVarInsn(ISTORE, 1);
    mn.visitVarInsn(ILOAD, 1);
    mn.visitInsn(IRETURN);
    mn.visitMaxs(0, 0);
    mn.visitEnd();
    new RemoveLoadStoreTransformer(null).transform(mn);
    mn.accept(tmv);
    checkMethod(tmv);
  }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

*/
public class OptimizeJumpTransformerTest extends AbstractTestCase {

  public void test() {
    TraceMethodVisitor tmv = new TraceMethodVisitor(null);
    MethodNode mn = new MethodNode(0, null, null, null, null);
    mn.visitCode();
    mn.visitVarInsn(ILOAD, 1);
    Label label = new Label();
    mn.visitJumpInsn(IFLT, label);
    mn.visitVarInsn(ALOAD, 0);
    mn.visitVarInsn(ILOAD, 1);
    mn.visitFieldInsn(PUTFIELD, "pkg/Bean", "f", "I");
    Label end = new Label();
    mn.visitJumpInsn(GOTO, end);
    mn.visitLabel(label);
    mn.visitFrame(F_SAME, 0, null, 0, null);
    mn.visitTypeInsn(NEW, "java/lang/IllegalArgumentException");
    mn.visitInsn(DUP);
    mn.visitMethodInsn(INVOKESPECIAL,
        "java/lang/IllegalArgumentException", "<init>", "()V");
    mn.visitInsn(ATHROW);
    mn.visitLabel(end);
    mn.visitFrame(F_SAME, 0, null, 0, null);
    mn.visitInsn(RETURN);
    mn.visitMaxs(0, 0);
    mn.visitEnd();
    new OptimizeJumpTransformer(null).transform(mn);
    mn.accept(tmv);
    checkMethod(tmv);
  }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

  public void transform(ClassNode cn) {
    if ((cn.access & ACC_INTERFACE) == 0) {
      boolean isPresent = false;
      Iterator i = cn.methods.iterator();
      while (i.hasNext()) {
        MethodNode mn = (MethodNode) i.next();
        if ("getThis".equals(mn.name)) {
          if ("()Ljava/lang/Object;".equals(mn.desc)) {
            isPresent = true;
            break;
          }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

public class RemoveGetFieldPutFieldTransformerTest extends
    RemoveGetFieldPutFieldAdapterTest {

  public void test() {
    TraceMethodVisitor tmv = new TraceMethodVisitor(null);
    MethodNode mn = new MethodNode(0, null, null, null, null);
    mn.visitCode();
    mn.visitVarInsn(ALOAD, 0);
    mn.visitVarInsn(ALOAD, 0);
    mn.visitVarInsn(ALOAD, 0);
    mn.visitFieldInsn(GETFIELD, "C", "f", "I");
    mn.visitFieldInsn(PUTFIELD, "C", "f", "I");
    mn.visitFieldInsn(GETFIELD, "C", "f", "I");
    mn.visitInsn(IRETURN);
    mn.visitMaxs(0, 0);
    mn.visitEnd();
    new RemoveGetFieldPutFieldTransformer(null).transform(mn);
    mn.accept(tmv);
    checkMethod(tmv);
  }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

* @author Eric Bruneton
*/
public class NullDereferenceAnalyzerTest extends AbstractTestCase {

  public void test() throws Exception {
    MethodNode mn = new MethodNode(ACC_PUBLIC, "m", "(ZZ)V", null, null);
    mn.visitCode();
    Label l0 = new Label();
    Label l1 = new Label();
    Label l2 = new Label();
    Label l3 = new Label();
    Label l4 = new Label();
    Label l5 = new Label();
    Label l6 = new Label();
    mn.visitTryCatchBlock(l0, l1, l2, null);
    mn.visitTryCatchBlock(l2, l3, l2, null);
    mn.visitInsn(ACONST_NULL); // insn 0
    mn.visitVarInsn(ASTORE, 3);
    mn.visitInsn(ACONST_NULL); // insn 2
    mn.visitVarInsn(ASTORE, 4);
    mn.visitTypeInsn(NEW, "C");
    mn.visitInsn(DUP);
    mn.visitMethodInsn(INVOKESPECIAL, "C", "<init>", "()V");
    mn.visitVarInsn(ASTORE, 5);
    mn.visitVarInsn(ILOAD, 1);
    mn.visitJumpInsn(IFEQ, l4);
    mn.visitTypeInsn(NEW, "java/lang/Integer"); // insn
    // 10
    mn.visitInsn(DUP);
    mn.visitInsn(ICONST_1);
    mn.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>",
        "(I)V");
    mn.visitVarInsn(ASTORE, 3);
    mn.visitTypeInsn(NEW, "C"); // insn 15
    mn.visitInsn(DUP);
    mn.visitMethodInsn(INVOKESPECIAL, "C", "<init>", "()V");
    mn.visitVarInsn(ASTORE, 4);
    mn.visitLabel(l4);
    mn.visitVarInsn(ILOAD, 2);
    mn.visitJumpInsn(IFEQ, l5);
    mn.visitTypeInsn(NEW, "java/lang/Integer"); // insn
    // 22
    mn.visitInsn(DUP);
    mn.visitInsn(ICONST_1);
    mn.visitMethodInsn(INVOKESPECIAL, "java/lang/Integer", "<init>",
        "(I)V");
    mn.visitVarInsn(ASTORE, 3);
    mn.visitTypeInsn(NEW, "C"); // insn 27
    mn.visitInsn(DUP);
    mn.visitMethodInsn(INVOKESPECIAL, "C", "<init>", "()V");
    mn.visitVarInsn(ASTORE, 4);
    mn.visitLabel(l5);
    mn.visitVarInsn(ALOAD, 4);
    mn.visitInsn(DUP);
    mn.visitVarInsn(ASTORE, 6);
    mn.visitInsn(MONITORENTER); // insn 35
    mn.visitLabel(l0);
    mn.visitVarInsn(ALOAD, 4);
    mn.visitVarInsn(ALOAD, 4);
    mn.visitFieldInsn(GETFIELD, "C", "i", "I"); // insn
    // 39
    mn.visitVarInsn(ALOAD, 5);
    mn.visitFieldInsn(GETFIELD, "C", "i", "I");
    mn.visitInsn(IADD);
    mn.visitVarInsn(ALOAD, 3);
    mn.visitMethodInsn(INVOKEVIRTUAL, // insn 44
        "java/lang/Integer", "intValue", "()I");
    mn.visitInsn(IADD);
    mn.visitFieldInsn(PUTFIELD, "C", "i", "I"); // insn
    // 46
    mn.visitVarInsn(ALOAD, 6);
    mn.visitInsn(MONITOREXIT); // insn 48
    mn.visitLabel(l1);
    mn.visitJumpInsn(GOTO, l6);
    mn.visitLabel(l2);
    mn.visitVarInsn(ALOAD, 6);
    mn.visitInsn(MONITOREXIT); // insn 53
    mn.visitLabel(l3);
    mn.visitInsn(ATHROW);
    mn.visitLabel(l6);
    mn.visitInsn(RETURN);
    mn.visitMaxs(3, 7);
    mn.visitEnd();

    List<AbstractInsnNode> occurences;
    occurences = new NullDereferenceAnalyzer().findNullDereferences(
        "D", mn);
    assertEquals(6, occurences.size());
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

* @author Eric Bruneton
*/
public class CyclomaticComplexityTest extends AbstractTestCase {

  public void test() throws AnalyzerException {
    MethodNode mn = new MethodNode(ACC_PUBLIC, "checkAndSetF", "(I)V",
        null, null);
    InsnList il = mn.instructions;
    il.add(new VarInsnNode(ILOAD, 1));
    LabelNode label = new LabelNode();
    il.add(new JumpInsnNode(IFLT, label));
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

  protected ClassVisitor getClassAdapter(final ClassVisitor cv) {
    return new ClassNode() {
      public void visitEnd() {
        Iterator i = methods.iterator();
        while (i.hasNext()) {
          MethodNode mn = (MethodNode) i.next();
          try {
            CyclomaticComplexity cc = new CyclomaticComplexity();
            assert (cc.getCyclomaticComplexity(name, mn) > 0);
          } catch (AnalyzerException ignored) {
          }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

public class RemoveUnusedCastTransformerTest extends
    RemoveUnusedCastAdapterTest {

  public void test() {
    TraceMethodVisitor tmv = new TraceMethodVisitor(null);
    MethodNode mn = new MethodNode(ACC_PUBLIC, "m",
        "(Ljava/lang/Integer;)I", null, null);
    mn.visitCode();
    mn.visitVarInsn(ALOAD, 1);
    mn.visitTypeInsn(CHECKCAST, "java/lang/Number");
    mn.visitMethodInsn(INVOKEVIRTUAL, "java/lang/Number", "intValue",
        "()I");
    mn.visitInsn(IRETURN);
    mn.visitMaxs(1, 2);
    mn.visitEnd();
    new RemoveUnusedCastTransformer("C", null).transform(mn);
    mn.accept(tmv);
    checkMethod(tmv);
  }
View Full Code Here

Examples of org.objectweb.asm.tree.MethodNode

public class RemoveGetFieldPutFieldTransformer2Test extends
    RemoveGetFieldPutFieldAdapterTest {

  public void test() {
    TraceMethodVisitor tmv = new TraceMethodVisitor(null);
    MethodNode mn = new MethodNode(0, null, null, null, null);
    mn.visitCode();
    mn.visitVarInsn(ALOAD, 0);
    mn.visitVarInsn(ALOAD, 0);
    mn.visitVarInsn(ALOAD, 0);
    mn.visitFieldInsn(GETFIELD, "C", "f", "I");
    mn.visitFieldInsn(PUTFIELD, "C", "f", "I");
    mn.visitFieldInsn(GETFIELD, "C", "f", "I");
    mn.visitInsn(IRETURN);
    mn.visitMaxs(0, 0);
    mn.visitEnd();
    new RemoveGetFieldPutFieldTransformer2(null).transform(mn);
    mn.accept(tmv);
    checkMethod(tmv);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.