summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2023-01-20 20:37:45 +1030
committerAdrian Johnson <ajohnson@redneon.com>2023-01-20 20:37:45 +1030
commitcbcf962da267c519c73dce3cb25afc8c983e1f5b (patch)
treeba8c24351becafc5ba4bd971037aa753a1124567
parent2c557d7ceac792bff21d946b288f6fc2d54cb73a (diff)
downloadcairo-cbcf962da267c519c73dce3cb25afc8c983e1f5b.tar.gz
svg-font: return SVG_FONT_ERROR on error
-rw-r--r--src/cairo-debug.c1
-rw-r--r--src/cairo-device.c1
-rw-r--r--src/cairo-error-private.h1
-rw-r--r--src/cairo-ft-font.c3
-rw-r--r--src/cairo-misc.c2
-rw-r--r--src/cairo-region.c1
-rw-r--r--src/cairo-spans.c2
-rw-r--r--src/cairo-surface.c1
-rw-r--r--src/cairo-svg-glyph-render.c2
-rw-r--r--src/cairo.c3
-rw-r--r--src/cairo.h1
-rw-r--r--util/cairo-trace/trace.c1
12 files changed, 14 insertions, 5 deletions
diff --git a/src/cairo-debug.c b/src/cairo-debug.c
index c83df3f47..11777f04b 100644
--- a/src/cairo-debug.c
+++ b/src/cairo-debug.c
@@ -405,6 +405,7 @@ _cairo_debug_status_to_string (cairo_int_status_t status)
case CAIRO_INT_STATUS_WIN32_GDI_ERROR: return "WIN32_GDI_ERROR";
case CAIRO_INT_STATUS_TAG_ERROR: return "TAG_ERROR";
case CAIRO_INT_STATUS_DWRITE_ERROR: return "DWRITE_ERROR";
+ case CAIRO_INT_STATUS_SVG_FONT_ERROR: return "SVG_FONT_ERROR";
case CAIRO_INT_STATUS_LAST_STATUS: return "LAST_STATUS";
diff --git a/src/cairo-device.c b/src/cairo-device.c
index 50e7ee484..57b63a778 100644
--- a/src/cairo-device.c
+++ b/src/cairo-device.c
@@ -164,6 +164,7 @@ _cairo_device_create_in_error (cairo_status_t status)
case CAIRO_STATUS_WIN32_GDI_ERROR:
case CAIRO_STATUS_TAG_ERROR:
case CAIRO_STATUS_DWRITE_ERROR:
+ case CAIRO_STATUS_SVG_FONT_ERROR:
default:
_cairo_error_throw (CAIRO_STATUS_NO_MEMORY);
return (cairo_device_t *) &_nil_device;
diff --git a/src/cairo-error-private.h b/src/cairo-error-private.h
index d84d4c23d..ba95db767 100644
--- a/src/cairo-error-private.h
+++ b/src/cairo-error-private.h
@@ -99,6 +99,7 @@ enum _cairo_int_status {
CAIRO_INT_STATUS_WIN32_GDI_ERROR,
CAIRO_INT_STATUS_TAG_ERROR,
CAIRO_INT_STATUS_DWRITE_ERROR,
+ CAIRO_INT_STATUS_SVG_FONT_ERROR,
CAIRO_INT_STATUS_LAST_STATUS,
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
index 6ff142f76..998878228 100644
--- a/src/cairo-ft-font.c
+++ b/src/cairo-ft-font.c
@@ -2982,9 +2982,6 @@ _cairo_ft_scaled_glyph_init_record_svg_glyph (cairo_ft_scaled_font_t *scaled_fon
palette,
num_palette_entries,
cr);
- if (status == CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED)
- status = CAIRO_INT_STATUS_UNSUPPORTED;
-
if (status == CAIRO_STATUS_SUCCESS)
status = cairo_status (cr);
}
diff --git a/src/cairo-misc.c b/src/cairo-misc.c
index 7ac0e8d05..6f6f9937e 100644
--- a/src/cairo-misc.c
+++ b/src/cairo-misc.c
@@ -176,6 +176,8 @@ cairo_status_to_string (cairo_status_t status)
return "invalid tag name, attributes, or nesting";
case CAIRO_STATUS_DWRITE_ERROR:
return "Window Direct Write error";
+ case CAIRO_STATUS_SVG_FONT_ERROR:
+ return "error occured while rendering an OpenType-SVG font";
default:
case CAIRO_STATUS_LAST_STATUS:
return "<unknown error status>";
diff --git a/src/cairo-region.c b/src/cairo-region.c
index eb78cf4a8..d38f50d92 100644
--- a/src/cairo-region.c
+++ b/src/cairo-region.c
@@ -112,6 +112,7 @@ _cairo_region_create_in_error (cairo_status_t status)
case CAIRO_STATUS_WIN32_GDI_ERROR:
case CAIRO_STATUS_TAG_ERROR:
case CAIRO_STATUS_DWRITE_ERROR:
+ case CAIRO_STATUS_SVG_FONT_ERROR:
default:
_cairo_error_throw (CAIRO_STATUS_NO_MEMORY);
return (cairo_region_t *) &_cairo_region_nil;
diff --git a/src/cairo-spans.c b/src/cairo-spans.c
index 1b46adf4d..711c0c106 100644
--- a/src/cairo-spans.c
+++ b/src/cairo-spans.c
@@ -133,6 +133,7 @@ _cairo_scan_converter_create_in_error (cairo_status_t status)
case CAIRO_STATUS_WIN32_GDI_ERROR:
case CAIRO_STATUS_TAG_ERROR:
case CAIRO_STATUS_DWRITE_ERROR:
+ case CAIRO_STATUS_SVG_FONT_ERROR:
default:
break;
}
@@ -251,6 +252,7 @@ _cairo_span_renderer_create_in_error (cairo_status_t status)
case CAIRO_STATUS_WIN32_GDI_ERROR: RETURN_NIL;
case CAIRO_STATUS_TAG_ERROR: RETURN_NIL;
case CAIRO_STATUS_DWRITE_ERROR: RETURN_NIL;
+ case CAIRO_STATUS_SVG_FONT_ERROR: RETURN_NIL;
default:
break;
}
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index fd661221b..a9bd3b579 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -3151,6 +3151,7 @@ _cairo_surface_create_in_error (cairo_status_t status)
case CAIRO_STATUS_WIN32_GDI_ERROR:
case CAIRO_INT_STATUS_DWRITE_ERROR:
case CAIRO_STATUS_TAG_ERROR:
+ case CAIRO_STATUS_SVG_FONT_ERROR:
default:
_cairo_error_throw (CAIRO_STATUS_NO_MEMORY);
return (cairo_surface_t *) &_cairo_surface_nil;
diff --git a/src/cairo-svg-glyph-render.c b/src/cairo-svg-glyph-render.c
index 96094cbd2..176c08484 100644
--- a/src/cairo-svg-glyph-render.c
+++ b/src/cairo-svg-glyph-render.c
@@ -3141,7 +3141,7 @@ _cairo_render_svg_glyph (const char *svg_document,
/* First parse elements into a tree and populate ids hash table */
if (!parse_svg (svg_render, svg_document)) {
print_error (svg_render, "Parse SVG document failed");
- status = CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED;
+ status = CAIRO_STATUS_SVG_FONT_ERROR;
goto cleanup;
}
diff --git a/src/cairo.c b/src/cairo.c
index 35696ab89..55e7103ea 100644
--- a/src/cairo.c
+++ b/src/cairo.c
@@ -372,7 +372,8 @@ static const cairo_t _cairo_nil[] = {
DEFINE_NIL_CONTEXT (CAIRO_STATUS_FREETYPE_ERROR),
DEFINE_NIL_CONTEXT (CAIRO_STATUS_WIN32_GDI_ERROR),
DEFINE_NIL_CONTEXT (CAIRO_STATUS_TAG_ERROR),
- DEFINE_NIL_CONTEXT (CAIRO_STATUS_DWRITE_ERROR)
+ DEFINE_NIL_CONTEXT (CAIRO_STATUS_DWRITE_ERROR),
+ DEFINE_NIL_CONTEXT (CAIRO_STATUS_SVG_FONT_ERROR)
};
COMPILE_TIME_ASSERT (ARRAY_LENGTH (_cairo_nil) == CAIRO_STATUS_LAST_STATUS - 1);
diff --git a/src/cairo.h b/src/cairo.h
index 82e2c69d8..d19c32418 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -358,6 +358,7 @@ typedef enum _cairo_status {
CAIRO_STATUS_WIN32_GDI_ERROR,
CAIRO_STATUS_TAG_ERROR,
CAIRO_STATUS_DWRITE_ERROR,
+ CAIRO_STATUS_SVG_FONT_ERROR,
CAIRO_STATUS_LAST_STATUS
} cairo_status_t;
diff --git a/util/cairo-trace/trace.c b/util/cairo-trace/trace.c
index 61e57f4d8..a9181ce24 100644
--- a/util/cairo-trace/trace.c
+++ b/util/cairo-trace/trace.c
@@ -1600,6 +1600,7 @@ _status_to_string (cairo_status_t status)
f(WIN32_GDI_ERROR);
f(TAG_ERROR);
f(DWRITE_ERROR);
+ f(SVG_FONT_ERROR);
case CAIRO_STATUS_LAST_STATUS:
break;
}