Exemple #1
0
Status da_reserve(DynArray* da, size_t size)
{
	if(da->pos+size > da->cur_size_pa)
		RETURN_STATUS_IF_ERR(da_set_size(da, da->cur_size_pa+size));
	da->cur_size = std::max(da->cur_size, da->pos+size);
	return INFO::OK;
}
Exemple #2
0
void pool_free_all(Pool* p)
{
	p->freelist = mem_freelist_Sentinel();

	// must be reset before da_set_size or CHECK_DA will complain.
	p->da.pos = 0;

	da_set_size(&p->da, 0);
}
Exemple #3
0
// note: can't call dst_empty_output_buffer from dst_init or vice versa
// because only the former must advance da->pos.
static void make_room_in_buffer(j_compress_ptr cinfo)
{
	DstPtr dst = (DstPtr)cinfo->dest;
	DynArray* da = dst->da;

	void* start = da->base + da->cur_size;

	if(da_set_size(da, da->cur_size+OUTPUT_BUF_SIZE) != 0)
		ERREXIT(cinfo, JERR_FILE_WRITE);

	dst->pub.next_output_byte = (JOCTET*)start;
	dst->pub.free_in_buffer = OUTPUT_BUF_SIZE;
}