summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2015-10-27 10:39:54 +0100
committerLukas Rytz <lukas.rytz@gmail.com>2015-10-27 10:45:23 +0100
commit4e994933c4b40a90555fe8acbe630f1c2fd03f55 (patch)
treee659744f926ab3dbb3a61e25b47be0a21be4d99d /src/compiler/scala/tools/nsc/backend/jvm/opt/InstructionResultSize.scala
parent3a9581d32f9d3adb1dcb0b9c4bfeb9c86f0addcf (diff)
downloadscala-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.scala8
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 |