Thomas Goyne
f9364b50a4
Return the correct iterator from ChunkedVector::erase()
...
When a chunk is removed entirely it should return an iterator to the first
element in the next chunk, not the last.
2016-05-11 16:08:30 -07:00
Thomas Goyne
7a75e2bae2
Use a better data structure for IndexSet
...
Switch to a chunked vector-of-vectors which makes mid-insertions on large sets
much faster, and cache the begin/end/count for each chunk to make lookups much
more cache-friendly.
2016-05-11 16:08:30 -07:00
Thomas Goyne
f051337cd3
Rename erase_and_unshift() to erase_or_unshift()
2016-05-11 16:08:30 -07:00
Thomas Goyne
0e11a791e9
Improve and expand the IndexSet tests
...
This gets index_set.cpp back up to 100% line coverage from just the
targeted unit tests.
2016-05-11 16:08:30 -07:00
Thomas Goyne
88a3b6ed00
Speed up the IndexSet combining operations
2016-05-11 16:08:30 -07:00
Thomas Goyne
424f4e829f
Prioritize modified rows when calculating changes for sorted results
2016-05-11 16:08:30 -07:00
Thomas Goyne
6609bcaed7
Add fine-grained notifications for List
2016-05-11 16:08:30 -07:00
Thomas Goyne
f3397d48c0
Add IndexSet tests
...
And fix a bug that resulted in ranges not being merged.
2016-01-25 10:36:54 -08:00