override fun add()

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