disbrowser/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Disassembly.kt

22 lines
623 B
Kotlin

package com.smallhacker.disbrowser.asm
import com.smallhacker.disbrowser.memory.SnesAddress
class Disassembly(lines: List<CodeUnit>) : Iterable<CodeUnit> {
override fun iterator() = lineList.iterator() as Iterator<CodeUnit>
private val knownAddresses = HashSet<SnesAddress>()
private val lineList = ArrayList<CodeUnit>()
init {
lines.forEach {
val address = it.address
if (address != null) {
knownAddresses += address
}
lineList.add(it)
}
}
operator fun contains(address: SnesAddress) = address in knownAddresses
}