summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2008-09-11 08:37:30 +0930
committerAdrian Johnson <ajohnson@redneon.com>2008-09-11 08:37:30 +0930
commitb74533b5a56c1d063f288343f2e8e484f3c6571f (patch)
tree43f8ec1b7a0fd32a7fe73276dc29c31126aeda30 /src
parent6772efcdf6b6710c839ab58a7218866cc9f409b6 (diff)
Add null output stream
Diffstat (limited to 'src')
-rw-r--r--src/cairo-output-stream-private.h4
-rw-r--r--src/cairo-output-stream.c23
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;
+}