aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core/src/org
diff options
context:
space:
mode:
authorEvgeny Mandrikov <Godin@users.noreply.github.com>2018-12-27 08:02:38 +0100
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2018-12-27 08:02:38 +0100
commitf93bf2cbce7253f670bc10aa10f95b7e831f9a53 (patch)
tree1ff8f15a9afa535f3a4db286183020f7ff9f323b /org.jacoco.core/src/org
parent3b8df21b64ec1e581c620b7a12483d7a6ee1655b (diff)
downloadjacoco-f93bf2cbce7253f670bc10aa10f95b7e831f9a53.tar.gz
Reduce duplication of code (#808)
Diffstat (limited to 'org.jacoco.core/src/org')
-rw-r--r--org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenFilter.java13
-rw-r--r--org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/KotlinWhenStringFilter.java17
-rw-r--r--org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java17
3 files changed, 7 insertions, 40 deletions
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<AbstractInsnNode> newTargets = new HashSet<AbstractInsnNode>();
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<AbstractInsnNode> replacements = new HashSet<AbstractInsnNode>();
- 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<AbstractInsnNode> replacements = new HashSet<AbstractInsnNode>();
- 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;
- }
-
}