diff options
author | Andrea Canciani <ranma42@gmail.com> | 2011-07-15 10:02:50 +0200 |
---|---|---|
committer | Andrea Canciani <ranma42@gmail.com> | 2011-08-14 16:06:31 +0200 |
commit | 79bd4df84c9158759e6a060de2b587479017d3c5 (patch) | |
tree | 9387a240551695dac0c0b734735db5c32e2a528d | |
parent | 45cd2ee7358956ae1b7764ad89c1e8d414504572 (diff) |
stream: Do not reference error output streams directly
This makes it possible to observe the creation of
cairo_output_stream_t error objects by breaking on
_cairo_output_stream_create_in_error() and makes the code cleaner by
passing around the status obtained from _cairo_error() instead of
throwing the error.
-rw-r--r-- | src/cairo-base64-stream.c | 6 | ||||
-rw-r--r-- | src/cairo-base85-stream.c | 6 | ||||
-rw-r--r-- | src/cairo-deflate-stream.c | 8 | ||||
-rw-r--r-- | src/cairo-output-stream-private.h | 2 | ||||
-rw-r--r-- | src/cairo-output-stream.c | 47 | ||||
-rw-r--r-- | src/cairo-pdf-operators.c | 6 | ||||
-rw-r--r-- | src/cairo-ps-surface.c | 12 |
7 files changed, 29 insertions, 58 deletions
diff --git a/src/cairo-base64-stream.c b/src/cairo-base64-stream.c index 636431372..2732fb3ac 100644 --- a/src/cairo-base64-stream.c +++ b/src/cairo-base64-stream.c @@ -126,10 +126,8 @@ _cairo_base64_stream_create (cairo_output_stream_t *output) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (cairo_base64_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, _cairo_base64_stream_write, diff --git a/src/cairo-base85-stream.c b/src/cairo-base85-stream.c index f81affb49..d04a4f588 100644 --- a/src/cairo-base85-stream.c +++ b/src/cairo-base85-stream.c @@ -115,10 +115,8 @@ _cairo_base85_stream_create (cairo_output_stream_t *output) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (cairo_base85_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, _cairo_base85_stream_write, diff --git a/src/cairo-deflate-stream.c b/src/cairo-deflate-stream.c index ae23bda94..aa6a52f72 100644 --- a/src/cairo-deflate-stream.c +++ b/src/cairo-deflate-stream.c @@ -125,10 +125,8 @@ _cairo_deflate_stream_create (cairo_output_stream_t *output) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (cairo_deflate_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, _cairo_deflate_stream_write, @@ -142,7 +140,7 @@ _cairo_deflate_stream_create (cairo_output_stream_t *output) if (deflateInit (&stream->zlib_stream, Z_DEFAULT_COMPRESSION) != Z_OK) { free (stream); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); } stream->zlib_stream.next_in = stream->input_buf; diff --git a/src/cairo-output-stream-private.h b/src/cairo-output-stream-private.h index edaabbe78..ea5b1da8f 100644 --- a/src/cairo-output-stream-private.h +++ b/src/cairo-output-stream-private.h @@ -63,8 +63,6 @@ struct _cairo_output_stream { cairo_bool_t closed; }; -extern const cairo_private cairo_output_stream_t _cairo_output_stream_nil; - cairo_private void _cairo_output_stream_init (cairo_output_stream_t *stream, cairo_output_stream_write_func_t write_func, diff --git a/src/cairo-output-stream.c b/src/cairo-output-stream.c index 0adda365c..554214f9e 100644 --- a/src/cairo-output-stream.c +++ b/src/cairo-output-stream.c @@ -87,7 +87,7 @@ _cairo_output_stream_fini (cairo_output_stream_t *stream) return _cairo_output_stream_close (stream); } -const cairo_output_stream_t _cairo_output_stream_nil = { +static const cairo_output_stream_t _cairo_output_stream_nil = { NULL, /* write_func */ NULL, /* flush_func */ NULL, /* close_func */ @@ -147,10 +147,8 @@ _cairo_output_stream_create (cairo_write_func_t write_func, cairo_output_stream_with_closure_t *stream; stream = malloc (sizeof (cairo_output_stream_with_closure_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, closure_write, NULL, closure_close); @@ -173,10 +171,8 @@ _cairo_output_stream_create_in_error (cairo_status_t status) return (cairo_output_stream_t *) &_cairo_output_stream_nil_write_error; stream = malloc (sizeof (cairo_output_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (stream, NULL, NULL, NULL); stream->status = status; @@ -592,16 +588,12 @@ _cairo_output_stream_create_for_file (FILE *file) { stdio_stream_t *stream; - if (file == NULL) { - _cairo_error_throw (CAIRO_STATUS_WRITE_ERROR); - return (cairo_output_stream_t *) &_cairo_output_stream_nil_write_error; - } + if (unlikely (file == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_WRITE_ERROR)); stream = malloc (sizeof *stream); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, stdio_write, stdio_flush, stdio_flush); @@ -623,19 +615,16 @@ _cairo_output_stream_create_for_filename (const char *filename) if (file == NULL) { switch (errno) { case ENOMEM: - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); default: - _cairo_error_throw (CAIRO_STATUS_WRITE_ERROR); - return (cairo_output_stream_t *) &_cairo_output_stream_nil_write_error; + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_WRITE_ERROR)); } } stream = malloc (sizeof *stream); if (unlikely (stream == NULL)) { fclose (file); - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); } _cairo_output_stream_init (&stream->base, @@ -676,10 +665,8 @@ _cairo_memory_stream_create (void) memory_stream_t *stream; stream = malloc (sizeof *stream); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, memory_write, NULL, memory_close); _cairo_array_init (&stream->array, 1); @@ -753,10 +740,8 @@ _cairo_null_stream_create (void) cairo_output_stream_t *stream; stream = malloc (sizeof *stream); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (stream, null_write, NULL, NULL); diff --git a/src/cairo-pdf-operators.c b/src/cairo-pdf-operators.c index 58c647219..c4e4343b8 100644 --- a/src/cairo-pdf-operators.c +++ b/src/cairo-pdf-operators.c @@ -356,10 +356,8 @@ _word_wrap_stream_create (cairo_output_stream_t *output, int max_column) return _cairo_output_stream_create_in_error (output->status); stream = malloc (sizeof (word_wrap_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, _word_wrap_stream_write, diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c index 96f5bcf2c..2e4f52c03 100644 --- a/src/cairo-ps-surface.c +++ b/src/cairo-ps-surface.c @@ -1952,10 +1952,8 @@ _string_array_stream_create (cairo_output_stream_t *output) string_array_stream_t *stream; stream = malloc (sizeof (string_array_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, _string_array_stream_write, @@ -1979,10 +1977,8 @@ _base85_array_stream_create (cairo_output_stream_t *output) string_array_stream_t *stream; stream = malloc (sizeof (string_array_stream_t)); - if (unlikely (stream == NULL)) { - _cairo_error_throw (CAIRO_STATUS_NO_MEMORY); - return (cairo_output_stream_t *) &_cairo_output_stream_nil; - } + if (unlikely (stream == NULL)) + return _cairo_output_stream_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY)); _cairo_output_stream_init (&stream->base, _string_array_stream_write, |