Code

Fixes crash of bug #537457, but export is incorrect.
authorJohan Engelen <goejendaagh@zonnet.nl>
Sun, 14 Mar 2010 16:09:04 +0000 (17:09 +0100)
committerJohan Engelen <goejendaagh@zonnet.nl>
Sun, 14 Mar 2010 16:09:04 +0000 (17:09 +0100)
src/extension/internal/cairo-render-context.cpp

index c33beab8a14870c53424c92be46d76a66568a08f..877bdb952d97adc4ca2b0c0d3dd08b3781096d85 100644 (file)
@@ -80,7 +80,7 @@
 #include <pango/pangofc-fontmap.h>
 
 //#define TRACE(_args) g_printf _args
-#define TRACE(_args)
+#define TRACE(_args) g_message _args
 //#define TEST(_args) _args
 #define TEST(_args)
 
@@ -662,7 +662,11 @@ CairoRenderContext::popLayer(void)
                 surface_width *= 1.25;
                 surface_height *= 1.25;
             }
-            mask_ctx->setupSurface( surface_width, surface_height );
+            if (!mask_ctx->setupSurface( surface_width, surface_height )) {
+                TRACE(("mask: setupSurface failed\n"));
+                _renderer->destroyContext(mask_ctx);
+                return;
+            }
             TRACE(("mask surface: %f x %f at %i dpi\n", surface_width, surface_height, _dpi ));
 
             // set rendering mode to normal
@@ -815,6 +819,7 @@ CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector, c
 bool
 CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface, cairo_matrix_t *ctm)
 {
+g_message("enter");
     if(surface == NULL) {
         return false;
     }
@@ -841,7 +846,7 @@ CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface, cairo_matrix_t
     }
 
     _is_valid = TRUE;
-
+g_message("leave");
     return true;
 }