raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=0093c9baa1f53797c35ffcbb07491a52534cdeae

commit 0093c9baa1f53797c35ffcbb07491a52534cdeae
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sat Oct 17 21:00:30 2020 +0100

    pager - try a fix for a pager segv - cant reproduce though
    
    a bit of i dotting and t crossing as to try stop this from happening
    again
---
 src/modules/pager/e_mod_main.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c
index 81f051269..be8238160 100644
--- a/src/modules/pager/e_mod_main.c
+++ b/src/modules/pager/e_mod_main.c
@@ -337,9 +337,9 @@ _pager_recalc(void *data)
    int w, h, zw, zh, w2, h2;
    E_Gadcon_Orient orient;
 
+   p->recalc = NULL;
    if (!p->inst || !p->inst->gcc || !p->inst->gcc->gadcon) return;
 
-   p->recalc = NULL;
    zw = p->zone->w; zh = p->zone->h;
    pd = eina_list_data_get(p->desks);
    if (!pd) return;
@@ -379,8 +379,8 @@ _pager_resize(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, voi
 {
    Pager *p = data;
 
-   if (!p->recalc)
-     p->recalc = ecore_job_add(_pager_recalc, p);
+   if (p->recalc) ecore_job_del(p->recalc);
+   p->recalc = ecore_job_add(_pager_recalc, p);
 }
 
 static Pager *
@@ -404,10 +404,12 @@ _pager_new(Evas *evas, E_Zone *zone, E_Gadcon *gc, 
Instance *inst)
 static void
 _pager_free(Pager *p)
 {
+   pagers = eina_list_remove(pagers, p);
    _pager_empty(p);
    evas_object_del(p->o_table);
+   p->o_table = NULL;
    ecore_job_del(p->recalc);
-   pagers = eina_list_remove(pagers, p);
+   p->recalc = NULL;
    free(p);
 }
 

-- 


Reply via email to