diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2015-07-01 20:38:27 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2015-07-01 20:57:58 +0900 |
commit | 42f8698a23b897934f0db3fa1505e3504f3f7f7e (patch) | |
tree | 2139f4cbd20c4cf77e681f1eaa5577e0d4702929 | |
parent | 2fa2b702f34f2e6ddd67ea74c92123d49e0e63b8 (diff) | |
download | efl-devs/jpeg/snapshot.tar.gz |
Evas render: Fix crash with async render and snapshotsdevs/jpeg/snapshot
This fixes a crash with expedite -y -t 112
-rw-r--r-- | src/lib/evas/canvas/evas_render.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 9d630859c4..ff292ae2e5 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2116,22 +2116,25 @@ evas_render_updates_internal_loop(Evas *eo_e, Evas_Public_Data *e, eina_evlog("+render_setup", eo_e, 0.0, NULL); RD(0, " [--- UPDATE %i %i %ix%i\n", ux, uy, uw, uh); - if (do_async) + if (!top) { - ru = malloc(sizeof(*ru)); - ru->surface = surface; - NEW_RECT(ru->area, ux, uy, uw, uh); - e->render.updates = eina_list_append(e->render.updates, ru); - evas_cache_image_ref(surface); - } - else if (make_updates) - { - Eina_Rectangle *rect; + if (do_async) + { + ru = malloc(sizeof(*ru)); + ru->surface = surface; + NEW_RECT(ru->area, ux, uy, uw, uh); + e->render.updates = eina_list_append(e->render.updates, ru); + evas_cache_image_ref(surface); + } + else if (make_updates) + { + Eina_Rectangle *rect; - NEW_RECT(rect, ux, uy, uw, uh); - if (rect) - e->render.updates = eina_list_append(e->render.updates, - rect); + NEW_RECT(rect, ux, uy, uw, uh); + if (rect) + e->render.updates = eina_list_append(e->render.updates, + rect); + } } off_x = cx - ux; |