Subversion Repositories Kolibri OS

Rev

Rev 4680 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
#include "fitz.h"
2
 
3
fz_buffer *
4
fz_new_buffer(int size)
5
{
6
	fz_buffer *b;
7
 
8
	size = size > 1 ? size : 16;
9
 
10
	b = fz_malloc(sizeof(fz_buffer));
11
	b->refs = 1;
12
	b->data = fz_malloc(size);
13
	b->cap = size;
14
	b->len = 0;
15
 
16
	return b;
17
}
18
 
19
fz_buffer *
20
fz_keep_buffer(fz_buffer *buf)
21
{
22
	buf->refs ++;
23
	return buf;
24
}
25
 
26
void
27
fz_drop_buffer(fz_buffer *buf)
28
{
29
	if (--buf->refs == 0)
30
	{
31
		fz_free(buf->data);
32
		fz_free(buf);
33
	}
34
}
35
 
36
void
37
fz_resize_buffer(fz_buffer *buf, int size)
38
{
39
	buf->data = fz_realloc(buf->data, size, 1);
40
	buf->cap = size;
41
	if (buf->len > buf->cap)
42
		buf->len = buf->cap;
43
}
44
 
45
void
46
fz_grow_buffer(fz_buffer *buf)
47
{
48
	fz_resize_buffer(buf, (buf->cap * 3) / 2);
49
}