raster pushed a commit to branch efl-1.8.

http://git.enlightenment.org/core/efl.git/commit/?id=1e2d434fc38f9cfaa0e290be9a4308646fac3f48

commit 1e2d434fc38f9cfaa0e290be9a4308646fac3f48
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Thu Dec 12 18:42:13 2013 +0900

    evas - fix gif loader drop of image data sometimes (image dump/flush)
    
    stable release - cherry-pick me!
    
    this fixses some still gifs going missing.
---
 src/modules/evas/loaders/gif/evas_image_load_gif.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/modules/evas/loaders/gif/evas_image_load_gif.c 
b/src/modules/evas/loaders/gif/evas_image_load_gif.c
index d767bd3..e01e276 100644
--- a/src/modules/evas/loaders/gif/evas_image_load_gif.c
+++ b/src/modules/evas/loaders/gif/evas_image_load_gif.c
@@ -605,7 +605,7 @@ open_file:
    // if we want to go backwards, we likely need/want to re-decode from the
    // start as we have nothnig to build on
    if ((index > 0) && (index < loader->imgnum) &&
-       (loader->animated->frame_count > 1))
+       (animated->animated > 1))
      {
         if (loader->gif) DGifCloseFile(loader->gif);
         if ((loader->fi.map) && (loader->f))
@@ -723,7 +723,7 @@ open_file:
                       (!animated->animated))
                {
                   // if we don't have the data decoded yet - decode it
-                  if (!thisframe->loaded)
+                  if ((!thisframe->loaded) || (!thisframe->data))
                     {
                        // use frame info but we WONT allocate frame pixels
                        finfo = thisframe->info;
@@ -781,7 +781,7 @@ on_ok:
    // if it was an animated image we need to copy the data to the
    // pixels for the image from the frame holding the data
    if (animated->animated && frame->data)
-     memcpy(pixels, frame->data, prop->w * prop->h * sizeof (DATA32));
+     memcpy(pixels, frame->data, prop->w * prop->h * sizeof(DATA32));
    prop->premul = EINA_TRUE;
    
 on_error: // jump here on any errors to clean up

-- 


Reply via email to