diff options
Diffstat (limited to 'src/scalap/scala/tools/scalap/Classfile.scala')
-rw-r--r-- | src/scalap/scala/tools/scalap/Classfile.scala | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/scalap/scala/tools/scalap/Classfile.scala b/src/scalap/scala/tools/scalap/Classfile.scala index f62df285f9..9549097ca6 100644 --- a/src/scalap/scala/tools/scalap/Classfile.scala +++ b/src/scalap/scala/tools/scalap/Classfile.scala @@ -79,6 +79,9 @@ class Classfile(in: ByteArrayReader) { case class DoubleConst(x: Double) extends PoolEntry(CONSTANT_DOUBLE) case class NameAndType(nameId: Int, typeId: Int) extends PoolEntry(CONSTANT_NAMEANDTYPE) case object Empty extends PoolEntry(0) { } + case class MethodHandle(kindId: Int, refId: Int) extends PoolEntry(CONSTANT_METHODHANDLE) + case class InvokeDynamic(bootMethodId: Int, nameTypeId: Int) extends PoolEntry(CONSTANT_INVDYNAMIC) + case class MethodType(descId: Int) extends PoolEntry(CONSTANT_METHODTYPE) val entries = { val pool = new Array[PoolEntry](in.nextChar.toInt) @@ -102,6 +105,9 @@ class Classfile(in: ByteArrayReader) { case CONSTANT_NAMEANDTYPE => NameAndType(in.nextChar, in.nextChar) case CONSTANT_INTEGER => IntegerConst(in.nextInt) case CONSTANT_FLOAT => FloatConst(in.nextFloat) + case CONSTANT_METHODHANDLE => MethodHandle(in.nextByte, in.nextChar) + case CONSTANT_METHODTYPE => MethodType(in.nextChar) + case CONSTANT_INVDYNAMIC => InvokeDynamic(in.nextChar, in.nextChar) } i += 1 |