blob: 1a6f34ad57d59db142d5dbac7aac47788efdcf96 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/*
* Data buffers for streams and filters.
*
* bp is the pointer to the allocated memory
* rp is read-position (*in->rp++ to read data)
* wp is write-position (*out->wp++ to write data)
* ep is the sentinel
*
* Only the data between rp and wp is valid data.
*
* Writers set eof to true at the end.
* Readers look at eof.
*
* A buffer owns the memory it has allocated, unless ownsdata is false,
* in which case the creator of the buffer owns it.
*/
typedef struct fz_buffer_s fz_buffer;
#define FZ_BUFSIZE (8 * 1024)
struct fz_buffer_s
{
int refs;
int ownsdata;
unsigned char *bp;
unsigned char *rp;
unsigned char *wp;
unsigned char *ep;
int eof;
};
fz_error *fz_newbuffer(fz_buffer **bufp, int size);
fz_error *fz_newbufferwithmemory(fz_buffer **bufp, unsigned char *data, int size);
fz_error *fz_rewindbuffer(fz_buffer *buf);
fz_error *fz_growbuffer(fz_buffer *buf);
fz_buffer *fz_keepbuffer(fz_buffer *buf);
void fz_dropbuffer(fz_buffer *buf);
|