aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core/src/org
diff options
context:
space:
mode:
authorEvgeny Mandrikov <Godin@users.noreply.github.com>2018-08-20 23:36:45 +0200
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2018-08-20 23:36:45 +0200
commit215a9414a2b7f8129ae818380af49f7cc37ba926 (patch)
treeae752c231227f5dbe60bf08f20b42e3209e5db85 /org.jacoco.core/src/org
parent1e01244a7b82a61149523c1be475505062e6c297 (diff)
downloadjacoco-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.java32
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);
+ }
}
}
}