evas: fix performance regression by reducing the unecessary memcpy we are doing.

Actually copying max is pretty useless and super slow. We usually have something
like 1024 slot in a context, but a very small amount of them are acutally active.
It would be better to actually do some kind of copy on write technique here, but
as Eina_Cow doesn't handle array and we are close to a release, let's be
conservative.
This commit is contained in:
Cedric BAIL 2015-10-13 12:10:34 -07:00
parent 0d6c53268d
commit 8a39069b64
1 changed files with 4 additions and 3 deletions

View File

@ -16,11 +16,12 @@ evas_common_draw_context_cutouts_dup(Cutout_Rects *rects2, const Cutout_Rects *r
{
if (!rects) return;
rects2->active = rects->active;
rects2->max = rects->max;
rects2->max = rects->active;
rects2->last_add = rects->last_add;
if (rects->max > 0)
rects2->rects = NULL;
if (rects2->max > 0)
{
const size_t sz = sizeof(Cutout_Rect) * rects->max;
const size_t sz = sizeof(Cutout_Rect) * rects2->max;
rects2->rects = malloc(sz);
memcpy(rects2->rects, rects->rects, sz);
}