forked from enlightenment/efl
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:
parent
0d6c53268d
commit
8a39069b64
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue