diff options
author | Evgeny Mandrikov <Godin@users.noreply.github.com> | 2018-08-20 23:36:45 +0200 |
---|---|---|
committer | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2018-08-20 23:36:45 +0200 |
commit | 215a9414a2b7f8129ae818380af49f7cc37ba926 (patch) | |
tree | ae752c231227f5dbe60bf08f20b42e3209e5db85 /org.jacoco.core/src/org | |
parent | 1e01244a7b82a61149523c1be475505062e6c297 (diff) | |
download | jacoco-215a9414a2b7f8129ae818380af49f7cc37ba926.tar.gz |
Get rid of unnecessary instances of Matcher in KotlinLateinitFilter (#750)
Diffstat (limited to 'org.jacoco.core/src/org')
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinLateinitFilter.java | 32 |
1 files changed, 14 insertions, 18 deletions
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); + } } } } |