diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2014-12-23 15:11:18 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2014-12-23 15:11:18 +0900 |
commit | a14e0b8b3283ff4ac34f13258268326882e4b1ec (patch) | |
tree | 6b43d1a5775f26c812befa7f10e2c56de809ac18 /src/lib/evas/file/evas_module.c | |
parent | 20ddb3929c265837531435b809139e3bb26f44af (diff) |
fix evas modules to never free eina module - fixes seg on shutdown in x
this fixes T1946
Diffstat (limited to '')
-rw-r--r-- | src/lib/evas/file/evas_module.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c index db10d538e5..34b1205dbf 100644 --- a/src/lib/evas/file/evas_module.c +++ b/src/lib/evas/file/evas_module.c | |||
@@ -619,7 +619,15 @@ evas_module_shutdown(void) | |||
619 | evas_static_module[i].shutdown(); | 619 | evas_static_module[i].shutdown(); |
620 | 620 | ||
621 | EINA_LIST_FREE(eina_evas_modules, en) | 621 | EINA_LIST_FREE(eina_evas_modules, en) |
622 | eina_module_free(en); | 622 | { |
623 | // yes - looks zstupid. just to keep compilers from complaining with warnings | ||
624 | if (!en) continue; | ||
625 | // NEVER FREE MODULES - they MAY be needed after shutdown - eg indirect func | ||
626 | // symbols from gl for example to shut down extensions. so yes - you may | ||
627 | // think this is a leak. technically it is, but it's needed to keep things | ||
628 | // running, so ignore this one | ||
629 | // eina_module_free(en); | ||
630 | } | ||
623 | 631 | ||
624 | eina_hash_free(evas_modules[EVAS_MODULE_TYPE_ENGINE]); | 632 | eina_hash_free(evas_modules[EVAS_MODULE_TYPE_ENGINE]); |
625 | evas_modules[EVAS_MODULE_TYPE_ENGINE] = NULL; | 633 | evas_modules[EVAS_MODULE_TYPE_ENGINE] = NULL; |