[0d5461a43eac20210e3ae033c9366233aeb0ae1f]
#keks
KEKS memory pool allocator
В KEKS для хранения декодированных атомов использовался просто массив из
структур, который, при нехватке места, полностью переаллоцировался. Ему
можно было задать начальное значение, но это помогает только если размер
декодируемого объекта более-менее известен заранее.
Теперь сделал memory pool allocation. Chunk-и на определённое кол-во
структур, связанные между собой. Для поиска свободных элементов: freelist
bitmap. Размер chunk-а тоже можно задать заранее.
Оставил возможность использовать и собственный аллокатор для нового
chunk. В первую очередь, для того, чтобы использовать буфер
фиксированного размера и никакого heap не использовать вовсе.
Прежде ссылаться на декодированный атом надо было по индексу в массиве.
Ссылки нельзя использовать, так как после realloc они станут невалидными.
Теперь же можно, что много где упростило код.
[оставить комментарий]