ecore: free futures which are still pending on shutdown
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>
Thu, 13 Oct 2016 08:27:06 +0000 (10:27 +0200)
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>
Thu, 13 Oct 2016 08:33:22 +0000 (10:33 +0200)
otherwise we are leaking a eina list.

This was discovered while running the elm_suite with CK_FORK=no, since
ecore and eina are init´ed and shutdown´ed, after the shutdown this list
points to freeed memory pools. So in the next testcase the list is
invalid and crashes. This fixes it with freeing the list on shutdown.

src/lib/ecore/ecore_main.c

index 6b1ac3e..d1b66a6 100644 (file)
@@ -1598,6 +1598,8 @@ ecore_main_fd_handler_active_set(Ecore_Fd_Handler      *fd_handler,
 void
 _ecore_main_shutdown(void)
 {
+   Efl_Future *future;
+
    if (in_main_loop)
      {
         ERR("\n"
@@ -1605,6 +1607,10 @@ _ecore_main_shutdown(void)
             "***                 Program may crash or behave strangely now.");
         return;
      }
+
+   EINA_LIST_FREE(_pending_futures, future)
+     efl_del(future);
+
    while (fd_handlers)
      {
         Ecore_Fd_Handler *fdh;