| Commit message (Collapse) | Author | Files | Lines |
|
Clang complains about `new_chunk`'s constructor using the
then-uninitialized `first_chunk` (even though it's just to get a pointer
into it).
|
|
Drop the std::list hack to allocate memory indefinitely.
Instead use a custom allocator that keeps references valid until
destruction. This allocates fixed chunks of memory and puts pointers in
a free list. When an allocation is no longer used put it back to the
free list, this doesn't heap allocate because std::vector doesn't change
the capacity. If the free list is empty, allocate a new chunk.
|
|
Instead of using boost::icl::interval_map for caching, use
boost::intrusive::set. interval_map is intended as a container where the
keys can overlap with one another; we don't need this for caching
buffers and a std::set-like data structure that allows us to search with
lower_bound is enough.
|
|
Removing shared pointers is a first step to be able to use intrusive
objects and keep allocations close to one another in memory.
|
|
Minor style changes. Mostly done so I avoid editing it while doing other
changes.
|
|
|
|
|
|
|
|
|
|
|
|
|