[JVM] Drop StoreLoadValue interface
This commit is contained in:
+3
-5
@@ -42,11 +42,9 @@ import org.jetbrains.org.objectweb.asm.tree.analysis.Frame
|
|||||||
import org.jetbrains.org.objectweb.asm.tree.analysis.Interpreter
|
import org.jetbrains.org.objectweb.asm.tree.analysis.Interpreter
|
||||||
import org.jetbrains.org.objectweb.asm.tree.analysis.Value
|
import org.jetbrains.org.objectweb.asm.tree.analysis.Value
|
||||||
|
|
||||||
interface StoreLoadValue : Value
|
abstract class StoreLoadInterpreter<V : Value> : Interpreter<V>(API_VERSION)
|
||||||
|
|
||||||
abstract class StoreLoadInterpreter<V : StoreLoadValue> : Interpreter<V>(API_VERSION)
|
class StoreLoadFrame<V : Value>(val maxLocals: Int) : Frame<V>(maxLocals, 0) {
|
||||||
|
|
||||||
class StoreLoadFrame<V : StoreLoadValue>(val maxLocals: Int) : Frame<V>(maxLocals, 0) {
|
|
||||||
override fun execute(insn: AbstractInsnNode, interpreter: Interpreter<V>) {
|
override fun execute(insn: AbstractInsnNode, interpreter: Interpreter<V>) {
|
||||||
when (insn.opcode) {
|
when (insn.opcode) {
|
||||||
in Opcodes.ISTORE..Opcodes.ASTORE -> {
|
in Opcodes.ISTORE..Opcodes.ASTORE -> {
|
||||||
@@ -65,7 +63,7 @@ class StoreLoadFrame<V : StoreLoadValue>(val maxLocals: Int) : Frame<V>(maxLocal
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FastStoreLoadAnalyzer<V : StoreLoadValue>(
|
class FastStoreLoadAnalyzer<V : Value>(
|
||||||
owner: String,
|
owner: String,
|
||||||
method: MethodNode,
|
method: MethodNode,
|
||||||
interpreter: StoreLoadInterpreter<V>
|
interpreter: StoreLoadInterpreter<V>
|
||||||
|
|||||||
+2
-1
@@ -14,6 +14,7 @@ import org.jetbrains.org.objectweb.asm.Type
|
|||||||
import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode
|
import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode
|
||||||
import org.jetbrains.org.objectweb.asm.tree.MethodNode
|
import org.jetbrains.org.objectweb.asm.tree.MethodNode
|
||||||
import org.jetbrains.org.objectweb.asm.tree.VarInsnNode
|
import org.jetbrains.org.objectweb.asm.tree.VarInsnNode
|
||||||
|
import org.jetbrains.org.objectweb.asm.tree.analysis.Value
|
||||||
|
|
||||||
|
|
||||||
// A temporary val is a local variables that is:
|
// A temporary val is a local variables that is:
|
||||||
@@ -128,7 +129,7 @@ class TemporaryValsAnalyzer {
|
|||||||
val loads = LinkedHashSet<VarInsnNode>()
|
val loads = LinkedHashSet<VarInsnNode>()
|
||||||
}
|
}
|
||||||
|
|
||||||
private sealed class StoredValue : StoreLoadValue {
|
private sealed class StoredValue : Value {
|
||||||
// `StoredValue` represent some abstract value that doesn't really have a definition of size.
|
// `StoredValue` represent some abstract value that doesn't really have a definition of size.
|
||||||
// `getSize` can return either 1 or 2, so we use 1 here.
|
// `getSize` can return either 1 or 2, so we use 1 here.
|
||||||
override fun getSize(): Int = 1
|
override fun getSize(): Int = 1
|
||||||
|
|||||||
Reference in New Issue
Block a user