diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2008-09-11 08:37:30 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2008-09-11 08:37:30 +0930 |
commit | b74533b5a56c1d063f288343f2e8e484f3c6571f (patch) | |
tree | 43f8ec1b7a0fd32a7fe73276dc29c31126aeda30 /src | |
parent | 6772efcdf6b6710c839ab58a7218866cc9f409b6 (diff) |
Add null output stream
Diffstat (limited to 'src')
-rw-r--r-- | src/cairo-output-stream-private.h | 4 | ||||
-rw-r--r-- | src/cairo-output-stream.c | 23 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/cairo-output-stream-private.h b/src/cairo-output-stream-private.h index 37239f26..6c60f092 100644 --- a/src/cairo-output-stream-private.h +++ b/src/cairo-output-stream-private.h @@ -161,6 +161,9 @@ _cairo_memory_stream_copy (cairo_output_stream_t *base, cairo_private int _cairo_memory_stream_length (cairo_output_stream_t *stream); +cairo_output_stream_t * +_cairo_null_stream_create (void); + /* cairo-base85-stream.c */ cairo_private cairo_output_stream_t * _cairo_base85_stream_create (cairo_output_stream_t *output); @@ -169,4 +172,5 @@ _cairo_base85_stream_create (cairo_output_stream_t *output); cairo_private cairo_output_stream_t * _cairo_deflate_stream_create (cairo_output_stream_t *output); + #endif /* CAIRO_OUTPUT_STREAM_PRIVATE_H */ diff --git a/src/cairo-output-stream.c b/src/cairo-output-stream.c index 206ed30b..7062007e 100644 --- a/src/cairo-output-stream.c +++ b/src/cairo-output-stream.c @@ -676,3 +676,26 @@ _cairo_memory_stream_length (cairo_output_stream_t *base) return _cairo_array_num_elements (&stream->array); } + +static cairo_status_t +null_write (cairo_output_stream_t *base, + const unsigned char *data, unsigned int length) +{ + return CAIRO_STATUS_SUCCESS; +} + +cairo_output_stream_t * +_cairo_null_stream_create (void) +{ + cairo_output_stream_t *stream; + + stream = malloc (sizeof *stream); + if (stream == NULL) { + _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); + return (cairo_output_stream_t *) &_cairo_output_stream_nil; + } + + _cairo_output_stream_init (stream, null_write, NULL); + + return stream; +} |