evas - rectangle custouts - fix possible leak coverity found
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 25 Aug 2014 03:42:56 +0000 (12:42 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 25 Aug 2014 03:42:56 +0000 (12:42 +0900)
this fixes CID 1039924

src/lib/evas/common/evas_pipe.c
src/lib/evas/common/evas_rectangle.h
src/lib/evas/common/evas_rectangle_main.c

index 6937907efa09a230f1f623027a1e8e8877240b0a..168aade2cdd48db09e85d8e7dcfe447b4164cdc8 100644 (file)
@@ -295,7 +295,7 @@ evas_common_pipe_rectangle_prepare(void *data, RGBA_Image *dst, RGBA_Pipe_Op *op
    Eina_Bool r;
 
    recycle = evas_pipe_cutout_rects_pop(info);
-   r = evas_common_rectangle_draw_prepare(recycle, dst, &(op->context),
+   r = evas_common_rectangle_draw_prepare(&recycle, dst, &(op->context),
                                           op->op.rect.x, op->op.rect.y,
                                           op->op.rect.w, op->op.rect.h);
    if (recycle->active) op->rects = recycle;
index 87eaeb151f74a6b335a15faa31d600d4338257c9..289188f58f4da3880ba905255ea9a0f1cb88c22a 100644 (file)
@@ -8,7 +8,7 @@ EAPI void       evas_common_rectangle_draw_cb   (RGBA_Image *dst, RGBA_Draw_Context *dc,
 EAPI void      evas_common_rectangle_draw      (RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h);
 
 EAPI void evas_common_rectangle_draw_do(const Cutout_Rects *reuse, const Eina_Rectangle *clip, RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h);
-EAPI Eina_Bool evas_common_rectangle_draw_prepare(Cutout_Rects *reuse, const RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h);
+EAPI Eina_Bool evas_common_rectangle_draw_prepare(Cutout_Rects **reuse, const RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h);
 
 EAPI void evas_common_rectangle_rgba_draw       (RGBA_Image *dst, DATA32 color, int render_op, int x, int y, int w, int h);
 
index aa4f936de51e70bb53bf489d0804b98c1c6f9944..34df87151be88f98982eaaf68502ad6b11ca0469 100644 (file)
@@ -55,7 +55,7 @@ evas_common_rectangle_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y,
 }
 
 EAPI Eina_Bool
-evas_common_rectangle_draw_prepare(Cutout_Rects *reuse, const RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h)
+evas_common_rectangle_draw_prepare(Cutout_Rects **reuse, const RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, int w, int h)
 {
    if ((w <= 0) || (h <= 0)) return EINA_FALSE;
    if (!(RECTS_INTERSECT(x, y, w, h, 0, 0, dst->cache_entry.w, dst->cache_entry.h)))
@@ -68,7 +68,7 @@ evas_common_rectangle_draw_prepare(Cutout_Rects *reuse, const RGBA_Image *dst, R
        evas_common_draw_context_clip_clip(dc, x, y, w, h);
        /* our clip is 0 size.. abort */
        if ((dc->clip.w > 0) && (dc->clip.h > 0))
-        reuse = evas_common_draw_context_apply_cutouts(dc, reuse);
+        *reuse = evas_common_draw_context_apply_cutouts(dc, *reuse);
      }
 
    return EINA_TRUE;