summaryrefslogtreecommitdiffstats
path: root/jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java
diff options
context:
space:
mode:
authorYohann Roussel <yroussel@google.com>2014-04-07 11:55:23 +0200
committerYohann Roussel <yroussel@google.com>2014-04-07 11:55:23 +0200
commit07a55f2c401c7bab42db8b1fb83abe3f980d364f (patch)
treea9937e2a054922e0288300d0c16d83742538183f /jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java
parentde9fa866925ccc0eac235184b7fb122e333e223e (diff)
downloadtoolchain_jack-07a55f2c401c7bab42db8b1fb83abe3f980d364f.zip
toolchain_jack-07a55f2c401c7bab42db8b1fb83abe3f980d364f.tar.gz
toolchain_jack-07a55f2c401c7bab42db8b1fb83abe3f980d364f.tar.bz2
Initial Jack import part 2.
Change-Id: Ic439604a1f030700d9049800fbf62422e0004d35
Diffstat (limited to 'jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java')
-rw-r--r--jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java b/jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java
index 3132bf9..3bc42aa 100644
--- a/jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java
+++ b/jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java
@@ -31,6 +31,11 @@ import com.android.jack.jayce.v0002.util.FieldRefKindIdHelper;
import com.android.jack.jayce.v0002.util.MethodKindIdHelper;
import com.android.jack.jayce.v0002.util.ReceiverKindIdHelper;
import com.android.jack.jayce.v0002.util.RetentionPolicyIdHelper;
+import com.android.sched.util.log.Tracer;
+import com.android.sched.util.log.TracerFactory;
+import com.android.sched.util.log.stats.Percent;
+import com.android.sched.util.log.stats.PercentImpl;
+import com.android.sched.util.log.stats.StatisticId;
import java.io.IOException;
import java.io.InputStream;
@@ -46,6 +51,14 @@ import javax.annotation.Nonnull;
* Jayce internal reader implementation.
*/
public class JayceInternalReaderImpl implements JayceInternalReader {
+ @Nonnull
+ public static final StatisticId<Percent> SKIPED_NDECLARED_TYPE = new StatisticId<Percent>(
+ "jayce.ndeclaredtype.skiped", "NDeclaredType loading that skiped by the reader",
+ PercentImpl.class, Percent.class);
+ @Nonnull
+ public static final StatisticId<Percent> SKIPED_BODY = new StatisticId<Percent>(
+ "jayce.body.skiped", "Body loading skiped by the reader",
+ PercentImpl.class, Percent.class);
@Nonnull
private final Tokenizer tokenizer;
@@ -65,6 +78,9 @@ public class JayceInternalReaderImpl implements JayceInternalReader {
@Nonnull
private final List<String> currentCatchBlockList = new ArrayList<String>();
+ @Nonnull
+ private final Tracer tracer = TracerFactory.getTracer();
+
public JayceInternalReaderImpl(@Nonnull InputStream in, @Nonnull Charset encoding) {
this.tokenizer = new Tokenizer(in);
}
@@ -179,6 +195,8 @@ public class JayceInternalReaderImpl implements JayceInternalReader {
return null;
}
+
+
tokenizer.readOpen();
NNode node;
try {
@@ -186,6 +204,12 @@ public class JayceInternalReaderImpl implements JayceInternalReader {
} catch (InvalidTokenException e) {
throw new ParseException("Unexpected token " + token + " while expecting node.", e);
}
+ Percent statistic = null;
+ if (token == Token.METHOD_BODY) {
+ statistic = tracer.getStatistic(SKIPED_BODY);
+ } else if (node instanceof NDeclaredType) {
+ statistic = tracer.getStatistic(SKIPED_NDECLARED_TYPE);
+ }
assert nodeClass.isAssignableFrom(node.getClass());
@@ -204,8 +228,14 @@ public class JayceInternalReaderImpl implements JayceInternalReader {
tokenizer.readClose();
if (nodeLevel.keep(token.getNodeLevel())) {
+ if (statistic != null) {
+ statistic.addFalse();
+ }
return (T) node;
} else {
+ if (statistic != null) {
+ statistic.addTrue();
+ }
return null;
}
}