diff options
Diffstat (limited to 'src/lib/evas/canvas/evas_object_image.c')
-rw-r--r-- | src/lib/evas/canvas/evas_object_image.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 6a1b9e98ff..05e5fb8e55 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c | |||
@@ -280,11 +280,16 @@ Eina_Cow *evas_object_image_state_cow = NULL; | |||
280 | static void | 280 | static void |
281 | _evas_object_image_cleanup(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o) | 281 | _evas_object_image_cleanup(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o) |
282 | { | 282 | { |
283 | EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) | 283 | /* Eina_Cow doesn't know if the resulting memory has changed, better check |
284 | before we change it */ | ||
285 | if (o->cur->opaque_valid) | ||
284 | { | 286 | { |
285 | state_write->opaque_valid = 0; | 287 | EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write) |
288 | { | ||
289 | state_write->opaque_valid = 0; | ||
290 | } | ||
291 | EINA_COW_IMAGE_STATE_WRITE_END(o, state_write); | ||
286 | } | 292 | } |
287 | EINA_COW_IMAGE_STATE_WRITE_END(o, state_write); | ||
288 | 293 | ||
289 | if ((o->preloading) && (o->engine_data)) | 294 | if ((o->preloading) && (o->engine_data)) |
290 | { | 295 | { |