object grow_buffer(object old, long new_capacity) { long old_capacity = BUFFER_CAPACITY(old); long old_length = BUFFER_LENGTH(old); if (old_capacity >= new_capacity) return old; gc_tmp1 = old; gc_tmp2 = make_buffer(new_capacity); memcpy(BUFFER_DATA(gc_tmp2),BUFFER_DATA(gc_tmp1),old_length); BUFFER_LENGTH(gc_tmp2) = BUFFER_LENGTH(old); return gc_tmp2; }
size_t buffer_capacity(buffer_t *buffer) { return BUFFER_CAPACITY(buffer); }