summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-07-01 20:38:27 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-07-01 20:57:58 +0900
commit42f8698a23b897934f0db3fa1505e3504f3f7f7e (patch)
tree2139f4cbd20c4cf77e681f1eaa5577e0d4702929
parent2fa2b702f34f2e6ddd67ea74c92123d49e0e63b8 (diff)
downloadefl-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.c31
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;