summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/cairo-render-context.cpp
diff options
context:
space:
mode:
authorAdib Taraben <theadib@gmail.com>2008-01-02 23:06:22 +0000
committertheadib <theadib@users.sourceforge.net>2008-01-02 23:06:22 +0000
commit3906725009226e9947e4fa6a1e8e6b6c70ef5805 (patch)
tree703d296494134647ae63cd75407f082b5d3d17b9 /src/extension/internal/cairo-render-context.cpp
parentfix for gcc 3.3 by John Faith. https://bugs.launchpad.net/inkscape/+bug/178180 (diff)
downloadinkscape-3906725009226e9947e4fa6a1e8e6b6c70ef5805.tar.gz
inkscape-3906725009226e9947e4fa6a1e8e6b6c70ef5805.zip
error checks on surface return values
(bzr r4372)
Diffstat (limited to 'src/extension/internal/cairo-render-context.cpp')
-rw-r--r--src/extension/internal/cairo-render-context.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp
index 1697719d7..3df9dff45 100644
--- a/src/extension/internal/cairo-render-context.cpp
+++ b/src/extension/internal/cairo-render-context.cpp
@@ -694,6 +694,9 @@ CairoRenderContext::setupSurface(double width, double height)
case CAIRO_SURFACE_TYPE_PS:
surface = cairo_ps_surface_create_for_stream(Inkscape::Extension::Internal::_write_callback, _stream, width, height);
#if (CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 5, 2))
+ if(CAIRO_STATUS_SUCCESS != cairo_surface_status(surface)) {
+ return FALSE;
+ }
cairo_ps_surface_restrict_to_level (surface, (cairo_ps_level_t)_ps_level);
#endif
break;
@@ -722,6 +725,13 @@ CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector)
bool
CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface)
{
+ if(surface == NULL) {
+ return FALSE;
+ }
+ if(CAIRO_STATUS_SUCCESS != cairo_surface_status(surface)) {
+ return FALSE;
+ }
+
_cr = cairo_create(surface);
_surface = surface;