X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fdisplay%2Fnr-arena.cpp;h=7c0664d16a6b394164e2ec3cc1016ab977aa563b;hb=b9cac2d195a58d3f9d9067b74f9fcadd0fb3cf39;hp=a6e33d2dc43ba743e0340ad5cd2ee4f4629a1105;hpb=b64d0121f71311f8f4439bd85e773e8a22f12185;p=inkscape.git diff --git a/src/display/nr-arena.cpp b/src/display/nr-arena.cpp index a6e33d2dc..7c0664d16 100644 --- a/src/display/nr-arena.cpp +++ b/src/display/nr-arena.cpp @@ -54,6 +54,7 @@ nr_arena_init (NRArena *arena) 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;