index a6e33d2dc43ba743e0340ad5cd2ee4f4629a1105..7c0664d16a6b394164e2ec3cc1016ab977aa563b 100644 (file)
--- a/src/display/nr-arena.cpp
+++ b/src/display/nr-arena.cpp
arena->delta = 0; // to be set by desktop from prefs
arena->rendermode = RENDERMODE_NORMAL; // default is normal render
arena->outlinecolor = 0xff; // black; to be set by desktop from bg color
+ arena->canvasarena = NULL;
}
static void
@@ -109,6 +110,12 @@ nr_arena_render_paintserver_fill (NRPixBlock *pb, NRRectL *area, SPPainter *pain
NRPixBlock cb, cb_opa;
nr_pixblock_setup_fast (&cb, NR_PIXBLOCK_MODE_R8G8B8A8N, area->x0, area->y0, area->x1, area->y1, TRUE);
nr_pixblock_setup_fast (&cb_opa, NR_PIXBLOCK_MODE_R8G8B8A8N, area->x0, area->y0, area->x1, area->y1, TRUE);
+
+ // if memory allocation failed, abort
+ if ((cb.size != NR_PIXBLOCK_SIZE_TINY && cb.data.px == NULL) || (cb_opa.size != NR_PIXBLOCK_SIZE_TINY && cb_opa.data.px == NULL)) {
+ return;
+ }
+
cb.visible_area = pb->visible_area;
cb_opa.visible_area = pb->visible_area;