bug exposed by cedric's leak and then my fix... :)
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 23 Oct 2010 04:36:32 +0000 (04:36 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sat, 23 Oct 2010 04:36:32 +0000 (04:36 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eet@53795 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/eet_data.c

index f607e6b..efb9fb5 100644 (file)
@@ -3613,7 +3613,10 @@ eet_data_get_array(Eet_Free_Context     *context,
              if (dst)
                {
                   memcpy(dst, data_ret, subsize);
-                 if (edd) edd->func.mem_free(data_ret);
+                 if ((ede) && (ede->subtype))
+                     ede->subtype->func.mem_free(data_ret);
+                  else if (edd)
+                     edd->func.mem_free(data_ret);
                  else free(data_ret);
                  _eet_freelist_del(context, data_ret);
                }