forked from enlightenment/efl
evas: fix CID 1102547 - Resource leak
If all rectangle are clipped out, it is perfectly possible to return no rectangle, this would lead to a possible leak.
This commit is contained in:
parent
1c1b48ca64
commit
15b9a640ac
|
@ -939,14 +939,14 @@ evas_common_tilebuf_get_render_rects(Tilebuf *tb)
|
||||||
}
|
}
|
||||||
return rects;
|
return rects;
|
||||||
}
|
}
|
||||||
|
|
||||||
rbuf = malloc(sizeof(Tilebuf_Rect) * num);
|
rbuf = malloc(sizeof(Tilebuf_Rect) * num);
|
||||||
if (!rbuf) return NULL;
|
if (!rbuf) return NULL;
|
||||||
|
|
||||||
for (i = 0, n = tb->rects.head; n; n = n->next)
|
for (i = 0, n = tb->rects.head; n; n = n->next)
|
||||||
{
|
{
|
||||||
rect_t cur;
|
rect_t cur;
|
||||||
|
|
||||||
cur = ((rect_node_t *)n)->rect;
|
cur = ((rect_node_t *)n)->rect;
|
||||||
RECTS_CLIP_TO_RECT(cur.left, cur.top, cur.width, cur.height,
|
RECTS_CLIP_TO_RECT(cur.left, cur.top, cur.width, cur.height,
|
||||||
0, 0, tb->outbuf_w, tb->outbuf_h);
|
0, 0, tb->outbuf_w, tb->outbuf_h);
|
||||||
|
@ -966,6 +966,10 @@ evas_common_tilebuf_get_render_rects(Tilebuf *tb)
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// It is possible that due to the clipping we do not return any rectangle here.
|
||||||
|
if (!rects) free(rbuf);
|
||||||
|
|
||||||
return rects;
|
return rects;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue