aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2014-01-11 13:18:08 +0100
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2014-01-13 07:02:41 +0100
commit60c33d63e75c1b0a5da9bd58be1f0b5434240220 (patch)
tree2d856daf9e2fb9cd151b2e9455b0410e66c62d23 /org.jacoco.core/src/org/jacoco/core/analysis/Analyzer.java
parenta7617e95423a1929577a59f03e08d67478b589bf (diff)
downloadjacoco-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.java23
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);
}