}
bool buffer::list::rebuild_aligned_size_and_memory(unsigned align_size,
- unsigned align_memory)
+ unsigned align_memory,
+ unsigned max_buffers)
{
unsigned old_memcopy_count = _memcopy_count;
+
+ if (max_buffers && _buffers.size() > max_buffers
+ && _len > (max_buffers * align_size)) {
+ align_size = ROUND_UP_TO(ROUND_UP_TO(_len, max_buffers) / max_buffers, align_size);
+ }
std::list<ptr>::iterator p = _buffers.begin();
while (p != _buffers.end()) {
// keep anything that's already align and sized aligned