I committed this accidentally, but it seems there's something wrong with this code.
If realloc() is called without changing but->base bad things should happen.
In any case, if suggested_size bytes are allocated, shouldn't this realloc be unnecessary?