diff options
author | Yohann Roussel <yroussel@google.com> | 2014-04-07 11:55:23 +0200 |
---|---|---|
committer | Yohann Roussel <yroussel@google.com> | 2014-04-07 11:55:23 +0200 |
commit | 07a55f2c401c7bab42db8b1fb83abe3f980d364f (patch) | |
tree | a9937e2a054922e0288300d0c16d83742538183f /jack/src/com/android/jack/jayce/v0002/io/JayceInternalReaderImpl.java | |
parent | de9fa866925ccc0eac235184b7fb122e333e223e (diff) | |
download | toolchain_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.java | 30 |
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; } } |