diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2013-09-13 21:32:42 +0930 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2014-08-27 10:50:51 +0200 |
commit | 35e0a2685134602671f7eda9595c3bb70781062c (patch) | |
tree | 177fce6c8485b93948fcb81dc226b8745822a9c6 | |
parent | 3b3202dc0006dccafdb9310a83ce1fc586c4df88 (diff) |
pdf: fix embedding of mime data that has been broken since 0a10982f
For some reason the mime-data test is not detecting this failure.
-rw-r--r-- | src/cairo-pdf-surface.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c index 6580d5b69..8536b9f8b 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -2637,6 +2637,18 @@ _cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface, cairo_int_status_t status; if (source->type == CAIRO_PATTERN_TYPE_SURFACE) { + if (!source->hash_entry->stencil_mask) { + status = _cairo_pdf_surface_emit_jpx_image (surface, source->surface, source->hash_entry->surface_res); + if (status != CAIRO_INT_STATUS_UNSUPPORTED) + return status; + + status = _cairo_pdf_surface_emit_jpeg_image (surface, source->surface, source->hash_entry->surface_res); + if (status != CAIRO_INT_STATUS_UNSUPPORTED) + return status; + } + } + + if (source->type == CAIRO_PATTERN_TYPE_SURFACE) { status = _cairo_surface_acquire_source_image (source->surface, &image, &image_extra); } else { status = _cairo_pdf_surface_acquire_source_image_from_pattern (surface, source->raster_pattern, @@ -2645,22 +2657,11 @@ _cairo_pdf_surface_emit_image_surface (cairo_pdf_surface_t *surface, if (unlikely (status)) return status; - if (!source->hash_entry->stencil_mask) { - status = _cairo_pdf_surface_emit_jpx_image (surface, &image->base, source->hash_entry->surface_res); - if (status != CAIRO_INT_STATUS_UNSUPPORTED) - goto release_source; - - status = _cairo_pdf_surface_emit_jpeg_image (surface, &image->base, source->hash_entry->surface_res); - if (status != CAIRO_INT_STATUS_UNSUPPORTED) - goto release_source; - } - status = _cairo_pdf_surface_emit_image (surface, image, &source->hash_entry->surface_res, source->hash_entry->interpolate, source->hash_entry->stencil_mask); -release_source: if (source->type == CAIRO_PATTERN_TYPE_SURFACE) _cairo_surface_release_source_image (source->surface, image, image_extra); else |