From 3868f0f91ab190a74e366551def1189854da4b66 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 12 Nov 2012 14:45:59 +0000 Subject: [PATCH] try avoid null ptr derefs. SVN revision: 79168 --- src/bin/e_desk.c | 3 ++- src/modules/pager/e_mod_main.c | 14 +++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 6b91f1bcd..bef1e43a9 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -420,7 +420,7 @@ e_desk_current_get(E_Zone *zone) { E_OBJECT_CHECK_RETURN(zone, NULL); E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL); - + return e_desk_at_xy_get(zone, zone->desk_x_current, zone->desk_y_current); } @@ -435,6 +435,7 @@ e_desk_at_xy_get(E_Zone *zone, int x, int y) else if ((x < 0) || (y < 0)) return NULL; + if (!zone->desks) return NULL; return zone->desks[x + (y * zone->desk_x_count)]; } diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index 2bb1cf994..517f865c4 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -355,12 +355,15 @@ _pager_fill(Pager *p, E_Gadcon *gc) E_Desk *desk; desk = e_desk_at_xy_get(p->zone, x, y); - pd = _pager_desk_new(p, desk, x, y, p->invert); - if (pd) + if (desk) { - p->desks = eina_list_append(p->desks, pd); - if (desk == e_desk_current_get(desk->zone)) - _pager_desk_select(pd); + pd = _pager_desk_new(p, desk, x, y, p->invert); + if (pd) + { + p->desks = eina_list_append(p->desks, pd); + if (desk == e_desk_current_get(desk->zone)) + _pager_desk_select(pd); + } } } } @@ -412,6 +415,7 @@ _pager_desk_new(Pager *p, E_Desk *desk, int xpos, int ypos, Eina_Bool invert) int w, h; Evas *e; + if (!desk) return NULL; pd = E_NEW(Pager_Desk, 1); if (!pd) return NULL;