From 49343b628afaf776c38871fe8270f56ad4a1ed1d Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 8 Aug 2019 23:28:18 +0900 Subject: [PATCH] evas vg: ++safety. Realloc internal composite buffer if its size is invalid. --- src/lib/evas/canvas/efl_canvas_vg_object.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c b/src/lib/evas/canvas/efl_canvas_vg_object.c index 1d932012ce..56f892023b 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_object.c +++ b/src/lib/evas/canvas/efl_canvas_vg_object.c @@ -403,6 +403,24 @@ _evas_vg_render(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd, if (alpha < 255) { + //Replace with a new size. + if (cd->blend_buffer) + { + int w2, h2; + ector_buffer_size_get(cd->blend_buffer, &w2, &h2); + + if (w2 != w || h2 != h) + { + if (cd->blend_pixels) + { + free(cd->blend_pixels); + cd->blend_pixels = NULL; + } + efl_unref(cd->blend_buffer); + cd->blend_buffer = NULL; + } + } + // Reuse buffer if (!cd->blend_pixels) cd->blend_pixels = calloc(w * h, sizeof(uint32_t*));