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

22 lines
623 B
Kotlin
Raw Normal View History

2019-01-07 18:19:37 +00:00
package com.smallhacker.disbrowser.asm
2019-01-20 10:11:30 +00:00
import com.smallhacker.disbrowser.memory.SnesAddress
2019-01-11 03:19:08 +00:00
class Disassembly(lines: List<CodeUnit>) : Iterable<CodeUnit> {
override fun iterator() = lineList.iterator() as Iterator<CodeUnit>
2019-01-07 18:19:37 +00:00
2019-01-11 16:35:35 +00:00
private val knownAddresses = HashSet<SnesAddress>()
2019-01-11 03:19:08 +00:00
private val lineList = ArrayList<CodeUnit>()
2019-01-07 18:19:37 +00:00
init {
2019-01-11 03:19:08 +00:00
lines.forEach {
val address = it.address
if (address != null) {
knownAddresses += address
}
lineList.add(it)
}
2019-01-07 18:19:37 +00:00
}
2019-01-11 16:35:35 +00:00
operator fun contains(address: SnesAddress) = address in knownAddresses
2019-01-07 18:19:37 +00:00
}