From 215a9414a2b7f8129ae818380af49f7cc37ba926 Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov Date: Mon, 20 Aug 2018 23:36:45 +0200 Subject: Get rid of unnecessary instances of Matcher in KotlinLateinitFilter (#750) --- .../analysis/filter/KotlinLateinitFilter.java | 32 ++++++++++------------ 1 file changed, 14 insertions(+), 18 deletions(-) (limited to 'org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinLateinitFilter.java') diff --git a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinLateinitFilter.java b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinLateinitFilter.java index c1aee3ad..65ee2131 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinLateinitFilter.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinLateinitFilter.java @@ -24,34 +24,30 @@ public class KotlinLateinitFilter implements IFilter { private final static String OWNER = "kotlin/jvm/internal/Intrinsics"; private final static String NAME = "throwUninitializedPropertyAccessException"; - public void filter(final MethodNode methodNode, final IFilterContext context, - final IFilterOutput output) { + public void filter(final MethodNode methodNode, + final IFilterContext context, final IFilterOutput output) { + final Matcher matcher = new Matcher(); for (AbstractInsnNode i = methodNode.instructions .getFirst(); i != null; i = i.getNext()) { - if (i.getOpcode() != Opcodes.IFNONNULL) { - continue; - } - - final AbstractInsnNode end = new Matcher(i).match(); - - if (end != null) { - output.ignore(i, end); - } + matcher.match(i, output); } } private static class Matcher extends AbstractMatcher { - private final AbstractInsnNode start; - - private Matcher(final AbstractInsnNode start) { - this.start = start; - } + public void match(final AbstractInsnNode start, + final IFilterOutput output) { - private AbstractInsnNode match() { + if (Opcodes.IFNONNULL != start.getOpcode()) { + return; + } cursor = start; + nextIs(Opcodes.LDC); nextIsInvokeStatic(OWNER, NAME); - return cursor; + + if (cursor != null) { + output.ignore(start, cursor); + } } } } -- cgit v1.2.3