diff options
Diffstat (limited to 'org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java')
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/internal/analysis/filter/StringSwitchEcjFilter.java | 7 |
1 files changed, 5 insertions, 2 deletions
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 d4be1819..6c52d3b9 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 @@ -21,6 +21,7 @@ import org.objectweb.asm.tree.LabelNode; import org.objectweb.asm.tree.LookupSwitchInsnNode; import org.objectweb.asm.tree.MethodNode; import org.objectweb.asm.tree.TableSwitchInsnNode; +import org.objectweb.asm.tree.VarInsnNode; /** * Filters code that is generated by ECJ for a <code>switch</code> statement @@ -41,14 +42,16 @@ public final class StringSwitchEcjFilter implements IFilter { public void match(final AbstractInsnNode start, final IFilterOutput output) { + if (Opcodes.ASTORE != start.getOpcode()) { + return; + } cursor = start; - - nextIsVar(Opcodes.ASTORE, "s"); nextIsInvokeVirtual("java/lang/String", "hashCode"); nextIsSwitch(); if (cursor == null) { return; } + vars.put("s", (VarInsnNode) start); final AbstractInsnNode s = cursor; final int hashCodes; |