diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2013-09-13 21:32:42 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2013-09-13 22:01:02 +0930 |
commit | 266d6e71566ac8c5e360c0b32fb78e23e6a06168 (patch) | |
tree | 4ce8e3115456bff3dc948e83f78def9db88d6361 | |
parent | 5390c2bbca3f1331f4fc831ba1381cc64e0162c6 (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 9ff15031d..92c614d19 100644 --- a/src/cairo-pdf-surface.c +++ b/src/cairo-pdf-surface.c @@ -2664,6 +2664,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, @@ -2672,22 +2684,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 |