diff options
author | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2014-01-11 13:18:08 +0100 |
---|---|---|
committer | Marc R. Hoffmann <hoffmann@mountainminds.com> | 2014-01-13 07:02:41 +0100 |
commit | 60c33d63e75c1b0a5da9bd58be1f0b5434240220 (patch) | |
tree | 2d856daf9e2fb9cd151b2e9455b0410e66c62d23 /org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java | |
parent | a7617e95423a1929577a59f03e08d67478b589bf (diff) | |
download | jacoco-60c33d63e75c1b0a5da9bd58be1f0b5434240220.tar.gz |
Provide core APIs to detect classes with non-matching ids.
Diffstat (limited to 'org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java')
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java b/org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java index f81026d0..de6397dc 100644 --- a/org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java +++ b/org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java @@ -68,13 +68,24 @@ public class Analyzer { * * @param classid * id of the class calculated with {@link CRC64} + * @param className + * VM name of the class * @return ASM visitor to write class definition to */ - private ClassVisitor createAnalyzingVisitor(final long classid) { + private ClassVisitor createAnalyzingVisitor(final long classid, + final String className) { final ExecutionData data = executionData.get(classid); - final boolean[] probes = data == null ? null : data.getProbes(); - final ClassAnalyzer analyzer = new ClassAnalyzer(classid, probes, - stringPool) { + final boolean[] probes; + final boolean noMatch; + if (data == null) { + probes = null; + noMatch = executionData.contains(className); + } else { + probes = data.getProbes(); + noMatch = false; + } + final ClassAnalyzer analyzer = new ClassAnalyzer(classid, noMatch, + probes, stringPool) { @Override public void visitEnd() { super.visitEnd(); @@ -91,8 +102,8 @@ public class Analyzer { * reader with class definitions */ public void analyzeClass(final ClassReader reader) { - final ClassVisitor visitor = createAnalyzingVisitor(CRC64 - .checksum(reader.b)); + final ClassVisitor visitor = createAnalyzingVisitor( + CRC64.checksum(reader.b), reader.getClassName()); reader.accept(visitor, 0); } |