item
at index
# Remove `item` at `index`
fun remove_at(item: E, index: Int)
do
var i = index
length -= 1
items[i] = null
var ii = 0
for s in starts, e in ends do
if s <= i and i < e then
if s == e-1 then
# single item chunk
starts.remove_at ii
ends.remove_at ii
if starts.is_empty then
items.clear
available.clear
return
end
else if e-1 == i then
# last item of chunk
ends[ii] -= 1
else if s == i then
# first item of chunk
starts[ii] += 1
else
# break up chunk
ends.insert(ends[ii], ii+1)
ends[ii] = i
starts.insert(i+1, ii+1)
end
available.add i
return
end
ii += 1
end
abort
end
lib/gamnit/flat/flat_core.nit:1607,2--1648,4