summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@gmail.com>2015-05-24 09:04:52 +0200
committerLukas Rytz <lukas.rytz@gmail.com>2015-05-25 13:40:43 +0200
commit53a274e3f1258bd7d26a72d4394108b2f4d04579 (patch)
tree1a5a39892d69ebe9a4be287b262a6ddc560cf93a /src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala
parent6372c71c7c6b3661b51c8dca85d7a241f0fa4813 (diff)
downloadscala-53a274e3f1258bd7d26a72d4394108b2f4d04579.tar.gz
scala-53a274e3f1258bd7d26a72d4394108b2f4d04579.tar.bz2
scala-53a274e3f1258bd7d26a72d4394108b2f4d04579.zip
Fix wrong result in InstructionStackEffect for ATHROW, RETURN
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala')
-rw-r--r--src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala b/src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala
index 3d6c53765e..56c8c2e4e3 100644
--- a/src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala
+++ b/src/compiler/scala/tools/nsc/backend/jvm/analysis/InstructionStackEffect.scala
@@ -196,9 +196,9 @@ object InstructionStackEffect {
LRETURN |
FRETURN |
DRETURN |
- ARETURN => (frame.getStackSize, 0)
+ ARETURN => (1, 0) // Frame.execute consumes one stack value
- case RETURN => (frame.getStackSize, 0)
+ case RETURN => (0, 0) // Frame.execute does not change the stack
case GETSTATIC => (0, 1)
@@ -229,7 +229,7 @@ object InstructionStackEffect {
ANEWARRAY |
ARRAYLENGTH => (1, 1)
- case ATHROW => (frame.getStackSize, 0)
+ case ATHROW => (1, 0) // Frame.execute consumes one stack value
case CHECKCAST => (0, 0)