List of usage examples for org.objectweb.asm Opcodes GOTO
int GOTO
To view the source code for org.objectweb.asm Opcodes GOTO.
Click Source Link
From source file:org.jacoco.core.internal.analysis.MethodAnalyzerTest.java
License:Open Source License
private void createJumpBackwards() { method.visitLineNumber(1001, new Label()); final Label l1 = new Label(); method.visitJumpInsn(Opcodes.GOTO, l1); final Label l2 = new Label(); method.visitLabel(l2);// w ww.ja v a2 s. c o m method.visitLineNumber(1002, l2); method.visitInsn(Opcodes.RETURN); method.visitLabel(l1); method.visitLineNumber(1003, l1); method.visitJumpInsn(Opcodes.GOTO, l2); }
From source file:org.jacoco.core.internal.analysis.MethodAnalyzerTest.java
License:Open Source License
private void createTableSwitch() { method.visitLineNumber(1001, new Label()); method.visitVarInsn(Opcodes.ILOAD, 1); Label l1 = new Label(); Label l2 = new Label(); Label l3 = new Label(); method.visitTableSwitchInsn(1, 3, l3, new Label[] { l1, l2, l1 }); method.visitLabel(l1);// w w w. j av a 2 s. c o m method.visitLineNumber(1002, l1); method.visitIntInsn(Opcodes.BIPUSH, 11); method.visitVarInsn(Opcodes.ISTORE, 2); method.visitLineNumber(1003, new Label()); Label l5 = new Label(); method.visitJumpInsn(Opcodes.GOTO, l5); method.visitLabel(l2); method.visitLineNumber(1004, l2); method.visitIntInsn(Opcodes.BIPUSH, 22); method.visitVarInsn(Opcodes.ISTORE, 2); method.visitLineNumber(1005, new Label()); method.visitJumpInsn(Opcodes.GOTO, l5); method.visitLabel(l3); method.visitLineNumber(1006, l3); method.visitInsn(Opcodes.ICONST_0); method.visitVarInsn(Opcodes.ISTORE, 2); method.visitLabel(l5); method.visitLineNumber(1007, l5); method.visitVarInsn(Opcodes.ILOAD, 2); method.visitInsn(Opcodes.IRETURN); }
From source file:org.jacoco.core.internal.analysis.MethodAnalyzerTest.java
License:Open Source License
private void createTryCatchBlock() { Label l1 = new Label(); Label l2 = new Label(); Label l3 = new Label(); Label l4 = new Label(); method.visitTryCatchBlock(l1, l2, l3, "java/lang/Exception"); method.visitLabel(l1);/*from w w w. ja va 2 s .c o m*/ method.visitLineNumber(1001, l1); method.visitVarInsn(Opcodes.ALOAD, 0); method.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/lang/Throwable", "printStackTrace", "()V"); method.visitLabel(l2); method.visitJumpInsn(Opcodes.GOTO, l4); method.visitLabel(l3); method.visitLineNumber(1002, l3); method.visitVarInsn(Opcodes.ASTORE, 1); method.visitLabel(l4); method.visitLineNumber(1004, l4); method.visitInsn(Opcodes.RETURN); }
From source file:org.jacoco.core.internal.flow.FrameSnapshotTest.java
License:Open Source License
@Test public void should_not_capture_frame_when_no_frame_is_defined() { analyzer.visitJumpInsn(Opcodes.GOTO, new Label()); frame = FrameSnapshot.create(analyzer, 0); }
From source file:org.jacoco.core.internal.flow.LabelFlowAnalyzer.java
License:Open Source License
@Override public void visitJumpInsn(final int opcode, final Label label) { LabelInfo.setTarget(label);//from www .j a v a 2 s. c om if (opcode == Opcodes.JSR) { throw new AssertionError("Subroutines not supported."); } successor = opcode != Opcodes.GOTO; first = false; }
From source file:org.jacoco.core.internal.instr.DuplicateFrameEliminatorTest.java
License:Open Source License
@Test public void testJumpInsn() { testInstructionBetweenFrames(new JumpInsnNode(Opcodes.GOTO, new LabelNode())); }
From source file:org.jacoco.core.internal.instr.FrameTracker.java
License:Open Source License
@Override public void visitJumpInsn(final int opcode, final Label label) { switch (opcode) { case Opcodes.GOTO: break;// ww w. j a v a 2 s. co m case Opcodes.IFEQ: case Opcodes.IFNE: case Opcodes.IFLT: case Opcodes.IFGE: case Opcodes.IFGT: case Opcodes.IFLE: case Opcodes.IFNULL: case Opcodes.IFNONNULL: pop(1); break; case Opcodes.IF_ICMPEQ: case Opcodes.IF_ICMPNE: case Opcodes.IF_ICMPLT: case Opcodes.IF_ICMPGE: case Opcodes.IF_ICMPGT: case Opcodes.IF_ICMPLE: case Opcodes.IF_ACMPEQ: case Opcodes.IF_ACMPNE: pop(2); break; default: throw new IllegalArgumentException(); } mv.visitJumpInsn(opcode, label); }
From source file:org.jacoco.core.internal.instr.MethodInstrumenter.java
License:Open Source License
@Override public void visitJumpInsnWithProbe(final int opcode, final Label label, final int probeId) { if (opcode == Opcodes.GOTO) { probeInserter.insertProbe(probeId); mv.visitJumpInsn(Opcodes.GOTO, label); } else {/* w w w .j a v a 2 s. co m*/ final Label intermediate = new Label(); mv.visitJumpInsn(getInverted(opcode), intermediate); probeInserter.insertProbe(probeId); mv.visitJumpInsn(Opcodes.GOTO, label); mv.visitLabel(intermediate); frameInserter.insertFrame(); } }
From source file:org.jacoco.core.internal.instr.MethodInstrumenter.java
License:Open Source License
private void insertIntermediateProbe(final Label label) { final int probeId = LabelInfo.getProbeId(label); if (probeId != LabelInfo.NO_PROBE && !LabelInfo.isDone(label)) { mv.visitLabel(LabelInfo.getIntermediateLabel(label)); frameInserter.insertFrame();/*from ww w. j a v a2 s. c o m*/ probeInserter.insertProbe(probeId); mv.visitJumpInsn(Opcodes.GOTO, label); LabelInfo.setDone(label); } }
From source file:org.jacoco.core.internal.instr.MethodInstrumenterTest.java
License:Open Source License
@Test public void testVisitJumpInsnWithProbe_GOTO() { final Label label = new Label(); instrumenter.visitJumpInsnWithProbe(Opcodes.GOTO, label, 3); expectedVisitor.visitLdcInsn("Probe 3"); expectedVisitor.visitJumpInsn(Opcodes.GOTO, label); assertEquals(expected, actual);//from w ww . ja va 2s . com }