diff options
-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; +} |