in trace/src/main/org/jetbrains/lincheck/trace/AddressIndex.kt [38:65]
override fun add(address: Long) {
if (storage == null && address < 0) {
size++
return
}
if (storage == null && size < MAX_MEM_INDEX_SIZE) {
val newIndex = MemoryAddressIndex()
repeat(size) {
newIndex.add(-1)
}
storage = newIndex
} else if (storage == null && size > MAX_MEM_INDEX_SIZE) {
val newIndex = MemoryMapAddressIndex()
repeat(size) {
newIndex.add(-1)
}
storage = newIndex
} else if (storage is MemoryAddressIndex && size >= MAX_MEM_INDEX_SIZE) {
val newIndex = MemoryMapAddressIndex()
repeat(size) {
newIndex.add(storage?.get(it) ?: -1)
}
storage = newIndex
}
storage?.add(address)
size++
}