From f93bf2cbce7253f670bc10aa10f95b7e831f9a53 Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov Date: Thu, 27 Dec 2018 08:02:38 +0100 Subject: Reduce duplication of code (#808) --- .../core/internal/analysis/filter/KotlinWhenFilter.java | 13 +------------ .../analysis/filter/KotlinWhenStringFilter.java | 17 +++-------------- .../internal/analysis/filter/StringSwitchEcjFilter.java | 17 +++-------------- 3 files changed, 7 insertions(+), 40 deletions(-) (limited to 'org.jacoco.core/src/org') diff --git a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenFilter.java b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenFilter.java index e9ffe045..dff035cd 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenFilter.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenFilter.java @@ -93,20 +93,9 @@ public final class KotlinWhenFilter implements IFilter { } final Set newTargets = new HashSet(); for (LabelNode label : labels) { - newTargets.add(instructionAfterLabel(label)); + newTargets.add(AbstractMatcher.skipNonOpcodes(label)); } output.replaceBranches(switchNode, newTargets); } - private static AbstractInsnNode instructionAfterLabel( - final LabelNode label) { - AbstractInsnNode i = label.getNext(); - while (i.getType() == AbstractInsnNode.FRAME - || i.getType() == AbstractInsnNode.LABEL - || i.getType() == AbstractInsnNode.LINE) { - i = i.getNext(); - } - return i; - } - } diff --git a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenStringFilter.java b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenStringFilter.java index b8694c24..895ba4e8 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenStringFilter.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenStringFilter.java @@ -67,7 +67,7 @@ public final class KotlinWhenStringFilter implements IFilter { } final Set replacements = new HashSet(); - replacements.add(instructionAfterLabel(defaultLabel)); + replacements.add(skipNonOpcodes(defaultLabel)); for (int i = 0; i < hashCodes; i++) { while (true) { @@ -83,8 +83,8 @@ public final class KotlinWhenStringFilter implements IFilter { return; } - replacements.add(instructionAfterLabel( - ((JumpInsnNode) cursor).label)); + replacements + .add(skipNonOpcodes(((JumpInsnNode) cursor).label)); if (jump.label == defaultLabel) { // end of comparisons for same hashCode @@ -98,15 +98,4 @@ public final class KotlinWhenStringFilter implements IFilter { } } - private static AbstractInsnNode instructionAfterLabel( - final LabelNode label) { - AbstractInsnNode i = label.getNext(); - while (i.getType() == AbstractInsnNode.FRAME - || i.getType() == AbstractInsnNode.LABEL - || i.getType() == AbstractInsnNode.LINE) { - i = i.getNext(); - } - return i; - } - } diff --git a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java index 6c52d3b9..caa66e72 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java @@ -67,7 +67,7 @@ public final class StringSwitchEcjFilter implements IFilter { } final Set replacements = new HashSet(); - replacements.add(instructionAfterLabel(defaultLabel)); + replacements.add(skipNonOpcodes(defaultLabel)); for (int i = 0; i < hashCodes; i++) { while (true) { @@ -80,8 +80,8 @@ public final class StringSwitchEcjFilter implements IFilter { return; } - replacements.add(instructionAfterLabel( - ((JumpInsnNode) cursor).label)); + replacements + .add(skipNonOpcodes(((JumpInsnNode) cursor).label)); if (cursor.getNext().getOpcode() == Opcodes.GOTO) { // end of comparisons for same hashCode @@ -99,15 +99,4 @@ public final class StringSwitchEcjFilter implements IFilter { } } - private static AbstractInsnNode instructionAfterLabel( - final LabelNode label) { - AbstractInsnNode i = label.getNext(); - while (i.getType() == AbstractInsnNode.FRAME - || i.getType() == AbstractInsnNode.LABEL - || i.getType() == AbstractInsnNode.LINE) { - i = i.getNext(); - } - return i; - } - } -- cgit v1.2.3