summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2024-02-17 10:01:14 +0000
committerAdrian Johnson <ajohnson@redneon.com>2024-02-17 10:01:14 +0000
commitbbbc68e6195ba75bcb3ef71a4be8082aa6619862 (patch)
treedb12782e75a6aa981f93c0f2f9b506d20938144c
parent586c8acacd70554759d4a835c2e8aa7d7b04f01b (diff)
parent23a643c80d435b8322d05a0bf127a324f3122333 (diff)
Merge branch 'surface-error-png' into 'master'
_cairo_surface_create_in_error(): Add PNG_ERROR support See merge request cairo/cairo!524
-rw-r--r--src/cairo-surface.c4
-rw-r--r--test/create-from-broken-png-stream.c7
2 files changed, 5 insertions, 6 deletions
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 2f5a6ac3d..657146790 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -159,6 +159,7 @@ static DEFINE_NIL_SURFACE(CAIRO_STATUS_INVALID_STRIDE, _cairo_surface_nil_invali
static DEFINE_NIL_SURFACE(CAIRO_STATUS_INVALID_SIZE, _cairo_surface_nil_invalid_size);
static DEFINE_NIL_SURFACE(CAIRO_STATUS_DEVICE_TYPE_MISMATCH, _cairo_surface_nil_device_type_mismatch);
static DEFINE_NIL_SURFACE(CAIRO_STATUS_DEVICE_ERROR, _cairo_surface_nil_device_error);
+static DEFINE_NIL_SURFACE(CAIRO_STATUS_PNG_ERROR, _cairo_surface_nil_png_error);
static DEFINE_NIL_SURFACE(CAIRO_INT_STATUS_UNSUPPORTED, _cairo_surface_nil_unsupported);
static DEFINE_NIL_SURFACE(CAIRO_INT_STATUS_NOTHING_TO_DO, _cairo_surface_nil_nothing_to_do);
@@ -3133,6 +3134,8 @@ _cairo_surface_create_in_error (cairo_status_t status)
return (cairo_surface_t *) &_cairo_surface_nil_device_type_mismatch;
case CAIRO_STATUS_DEVICE_ERROR:
return (cairo_surface_t *) &_cairo_surface_nil_device_error;
+ case CAIRO_STATUS_PNG_ERROR:
+ return (cairo_surface_t *) &_cairo_surface_nil_png_error;
case CAIRO_STATUS_SUCCESS:
case CAIRO_STATUS_LAST_STATUS:
ASSERT_NOT_REACHED;
@@ -3161,7 +3164,6 @@ _cairo_surface_create_in_error (cairo_status_t status)
case CAIRO_STATUS_INVALID_MESH_CONSTRUCTION:
case CAIRO_STATUS_DEVICE_FINISHED:
case CAIRO_STATUS_JBIG2_GLOBAL_MISSING:
- case CAIRO_STATUS_PNG_ERROR:
case CAIRO_STATUS_FREETYPE_ERROR:
case CAIRO_STATUS_WIN32_GDI_ERROR:
case CAIRO_INT_STATUS_DWRITE_ERROR:
diff --git a/test/create-from-broken-png-stream.c b/test/create-from-broken-png-stream.c
index 7c02a2639..88cce0aff 100644
--- a/test/create-from-broken-png-stream.c
+++ b/test/create-from-broken-png-stream.c
@@ -61,13 +61,10 @@ preamble (cairo_test_context_t *ctx)
surface = cairo_image_surface_create_from_png_stream (read_png_from_data,
&offset);
- /* XXX: The actual error is CAIRO_STATUS_PNG_ERROR, but
- * _cairo_surface_create_in_error() does not support that.
- */
- expected = CAIRO_STATUS_NO_MEMORY;
+ expected = CAIRO_STATUS_PNG_ERROR;
status = cairo_surface_status (surface);
cairo_surface_destroy (surface);
- if (status != CAIRO_STATUS_NO_MEMORY) {
+ if (status != expected) {
cairo_test_log (ctx,
"Error: expected error %s, but got %s\n",
cairo_status_to_string (expected),