[JVM] Move private extension methods into FixStackFrame

This commit is contained in:
Ivan Kylchik
2023-08-24 12:40:10 +02:00
committed by Space Team
parent 2c4c3a73b8
commit f49f6656b9
@@ -176,19 +176,18 @@ internal class FixStackAnalyzer(
override fun merge(frame: Frame<out FixStackValue>, interpreter: Interpreter<FixStackValue>): Boolean { override fun merge(frame: Frame<out FixStackValue>, interpreter: Interpreter<FixStackValue>): Boolean {
throw UnsupportedOperationException("Stack normalization should not merge frames") throw UnsupportedOperationException("Stack normalization should not merge frames")
} }
}
private fun FixStackFrame.executeBeforeInlineCallMarker(insn: AbstractInsnNode) { private fun executeBeforeInlineCallMarker(insn: AbstractInsnNode) {
saveStackAndClear(insn) saveStackAndClear(insn)
} }
private fun FixStackFrame.saveStackAndClear(insn: AbstractInsnNode) { private fun saveStackAndClear(insn: AbstractInsnNode) {
val savedValues = getStackContent() val savedValues = getStackContent()
spilledStacks[insn] = savedValues spilledStacks[insn] = savedValues
clearStack() clearStack()
} }
private fun FixStackFrame.executeAfterInlineCallMarker(insn: AbstractInsnNode) { private fun executeAfterInlineCallMarker(insn: AbstractInsnNode) {
val beforeInlineMarker = context.openingInlineMethodMarker[insn] val beforeInlineMarker = context.openingInlineMethodMarker[insn]
if (stackSize > 0) { if (stackSize > 0) {
val returnValue = pop() val returnValue = pop()
@@ -202,7 +201,7 @@ internal class FixStackAnalyzer(
} }
} }
private fun FixStackFrame.executeRestoreStackInTryCatch(insn: AbstractInsnNode) { private fun executeRestoreStackInTryCatch(insn: AbstractInsnNode) {
val saveNode = context.saveStackMarkerForRestoreMarker[insn] val saveNode = context.saveStackMarkerForRestoreMarker[insn]
val savedValues = spilledStacks.getOrElse(saveNode!!) { val savedValues = spilledStacks.getOrElse(saveNode!!) {
throw AssertionError("${insn.indexOf()}: Restore stack is unavailable for ${saveNode.indexOf()}") throw AssertionError("${insn.indexOf()}: Restore stack is unavailable for ${saveNode.indexOf()}")
@@ -210,10 +209,11 @@ internal class FixStackAnalyzer(
pushAll(savedValues) pushAll(savedValues)
} }
private fun FixStackFrame.executeSaveStackBeforeTry(insn: AbstractInsnNode) { private fun executeSaveStackBeforeTry(insn: AbstractInsnNode) {
saveStackAndClear(insn) saveStackAndClear(insn)
} }
} }
}
} }