diff options
Diffstat (limited to 'src/cairo-png.c')
-rw-r--r-- | src/cairo-png.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/cairo-png.c b/src/cairo-png.c index 068617d58..9d7c5cc97 100644 --- a/src/cairo-png.c +++ b/src/cairo-png.c @@ -41,6 +41,7 @@ #include "cairo-error-private.h" #include "cairo-image-surface-private.h" #include "cairo-output-stream-private.h" +#include "cairo-ttrace.h" #include <stdio.h> #include <errno.h> @@ -171,6 +172,7 @@ write_png (cairo_surface_t *surface, png_rw_ptr write_func, void *closure) { + CAIRO_TRACE_BEGIN (__func__); int i; cairo_int_status_t status; cairo_image_surface_t *image; @@ -187,10 +189,14 @@ write_png (cairo_surface_t *surface, &image, &image_extra); - if (status == CAIRO_INT_STATUS_UNSUPPORTED) + if (status == CAIRO_INT_STATUS_UNSUPPORTED) { + CAIRO_TRACE_END (__func__); return _cairo_error (CAIRO_STATUS_SURFACE_TYPE_MISMATCH); - else if (unlikely (status)) - return status; + } + else if (unlikely (status)) { + CAIRO_TRACE_END (__func__); + return status; + } /* PNG complains about "Image width or height is zero in IHDR" */ if (image->width == 0 || image->height == 0) { @@ -314,6 +320,7 @@ BAIL2: BAIL1: _cairo_surface_release_source_image (surface, image, image_extra); + CAIRO_TRACE_END (__func__); return status; } @@ -426,17 +433,23 @@ cairo_surface_write_to_png_stream (cairo_surface_t *surface, cairo_write_func_t write_func, void *closure) { + CAIRO_TRACE_BEGIN (__func__); struct png_write_closure_t png_closure; - if (surface->status) + if (surface->status) { + CAIRO_TRACE_END (__func__); return surface->status; + } - if (surface->finished) + if (surface->finished) { + CAIRO_TRACE_END (__func__); return _cairo_error (CAIRO_STATUS_SURFACE_FINISHED); + } png_closure.write_func = write_func; png_closure.closure = closure; + CAIRO_TRACE_END (__func__); return write_png (surface, stream_write_func, &png_closure); } slim_hidden_def (cairo_surface_write_to_png_stream); |