disbrowser/src/main/java/com/smallhacker/disbrowser/asm/Disassembly.kt

20 lines
561 B
Kotlin
Raw Normal View History

2019-01-07 18:19:37 +00:00
package com.smallhacker.disbrowser.asm
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 03:19:08 +00:00
private val knownAddresses = HashSet<Address>()
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 03:19:08 +00:00
operator fun contains(address: Address) = address in knownAddresses
2019-01-07 18:19:37 +00:00
}