diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2015-10-27 10:39:54 +0100 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2015-10-27 10:45:23 +0100 |
commit | 4e994933c4b40a90555fe8acbe630f1c2fd03f55 (patch) | |
tree | e659744f926ab3dbb3a61e25b47be0a21be4d99d /src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala | |
parent | 3a9581d32f9d3adb1dcb0b9c4bfeb9c86f0addcf (diff) | |
download | scala-4e994933c4b40a90555fe8acbe630f1c2fd03f55.tar.gz scala-4e994933c4b40a90555fe8acbe630f1c2fd03f55.tar.bz2 scala-4e994933c4b40a90555fe8acbe630f1c2fd03f55.zip |
Support JSR / RET in computeMaxLocalsMaxStack
Even though the two bytecodes are not allowed in classfiles of
version 51+ (see [1]), we could encounter them when inlining from a
JAR file containing classfiles of older version.
[1] https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.9.1
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala b/src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala index 8d744f6d13..79e44a8503 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala @@ -33,14 +33,10 @@ object InstructionResultSize { case LDC => instruction.asInstanceOf[LdcInsnNode].cst match { - case _: java.lang.Integer | - _: java.lang.Float | - _: String | - _: Type | - _: Handle => 1 - case _: java.lang.Long | _: java.lang.Double => 2 + + case _ => 1 } case ILOAD | |