Ejemplo n.º 1
0
fz_error *
fz_chainpipeline(fz_filter **fp, fz_filter *head, fz_filter *tail, fz_buffer *buf)
{
	FZ_NEWFILTER(fz_pipeline, p, pipeline);
	p->head = fz_keepfilter(head);
	p->tail = fz_keepfilter(tail);
	p->tailneedsin = 1;
	p->buffer = fz_keepbuffer(buf);
	return nil;
}
Ejemplo n.º 2
0
void
fz_unchainpipeline(fz_filter *filter, fz_filter **oldfp, fz_buffer **oldbp)
{
	fz_pipeline *p = (fz_pipeline*)filter;

	*oldfp = fz_keepfilter(p->head);
	*oldbp = fz_keepbuffer(p->buffer);

	fz_dropfilter(filter);
}
fz_error fz_openrbuffer(fz_stream **stmp, fz_buffer *buf)
{
	fz_stream *stm;

	stm = newstm(FZ_SBUFFER);
	if (!stm)
		return fz_rethrow(-1, "out of memory: stream struct");

	stm->buffer = fz_keepbuffer(buf);

	stm->buffer->eof = 1;

	*stmp = stm;
	return fz_okay;
}
Ejemplo n.º 4
0
static fz_error *
openbuffer(fz_stream **stmp, fz_buffer *buf, int mode)
{
	fz_stream *stm;

	stm = newstm(FZ_SBUFFER, mode);
	if (!stm)
		return fz_throw("outofmem: stream struct");

	stm->buffer = fz_keepbuffer(buf);

	if (mode == FZ_SREAD)
		stm->buffer->eof = 1;

	*stmp = stm;
	return fz_okay;
}
Ejemplo n.º 5
0
fz_stream *
fz_openbuffer(fz_buffer *buf)
{
	fz_stream *stm;

	stm = fz_newstream(fz_keepbuffer(buf), readbuffer, closebuffer);
	stm->seek = seekbuffer;

	stm->bp = buf->data;
	stm->rp = buf->data;
	stm->wp = buf->data + buf->len;
	stm->ep = buf->data + buf->len;

	stm->pos = buf->len;

	return stm;
}