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
|
|
|
}
|