diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2014-05-10 09:07:36 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2014-05-13 15:17:17 +0200 |
commit | 9e1b464d44d2402211b905d6d89cf4004090fe43 (patch) | |
tree | 2f140ce75390ba3e5c7fd519d15b76438110cf5a /src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala | |
parent | ea166087ce3fe2731a8b0d767cbbd4c5e5e648c1 (diff) | |
download | scala-9e1b464d44d2402211b905d6d89cf4004090fe43.tar.gz scala-9e1b464d44d2402211b905d6d89cf4004090fe43.tar.bz2 scala-9e1b464d44d2402211b905d6d89cf4004090fe43.zip |
Allow tracing methods and classes in GenBCode
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala index 193100474c..61cf76f524 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenBCode.scala @@ -243,6 +243,17 @@ abstract class GenBCode extends BCodeSyncAndTry { val plainC = SubItem3(plain.name, getByteArray(plain)) val beanC = if (bean == null) null else SubItem3(bean.name, getByteArray(bean)) + if (AsmUtils.traceSerializedClassEnabled && plain.name.contains(AsmUtils.traceSerializedClassPattern)) { + def readClass(bytes: Array[Byte]): asm.tree.ClassNode = { + val node = new asm.tree.ClassNode() + new asm.ClassReader(bytes).accept(node, 0) + node + } + if (mirrorC != null) AsmUtils.traceClass(readClass(mirrorC.jclassBytes)) + AsmUtils.traceClass(readClass(plainC.jclassBytes)) + if (beanC != null) AsmUtils.traceClass(readClass(beanC.jclassBytes)) + } + q3 add Item3(arrivalPos, mirrorC, plainC, beanC, outFolder) } |