Fixed Memory Leakage in gif loading. 32/169732/3
authorUmar <m.umar@partner.samsung.com>
Thu, 8 Feb 2018 18:05:46 +0000 (18:05 +0000)
committerUmar <m.umar@partner.samsung.com>
Fri, 9 Feb 2018 17:27:44 +0000 (17:27 +0000)
Change-Id: I4d3daedca9ac5b6d72859693720f8b3ae1c8e14d

dali/devel-api/adaptor-framework/gif-loading.cpp

index 2d5094b8415f72b5cfd62bb5cc544da051cd0df7..3d8e7858898bdf69575a94ce2e1dc0122b99a31e 100644 (file)
@@ -1042,7 +1042,7 @@ open_file:
 
         FlushFrames( animated, prop.w, prop.h, thisFrame, previousFrame, lastPreservedFrame );
       }
-      // if we hve a frame BUT the image is not animated... different
+      // if we have a frame BUT the image is not animated. different
       // path
       else if( (thisFrame) && (!thisFrame->data) && (!animated.animated) )
       {
@@ -1152,6 +1152,17 @@ public:
       munmap( loaderInfo.fileData.globalMap , loaderInfo.fileData.length );
       loaderInfo.fileData.globalMap  = nullptr;
     }
+
+    // Delete all image frames
+    for( auto &&frame : loaderInfo.animated.frames )
+    {
+      if( frame.data != nullptr )
+      {
+        // De-allocate memory of the frame data.
+        delete[] frame.data;
+        frame.data = nullptr;
+      }
+    }
   }
 
   std::string mUrl;