[PATCH] Remove more superfluous if(p!=NULL) checks around free(p); p=NULL; p_foo=0;

Cyril Brulebois kibi at debian.org
Wed Nov 10 07:59:05 PST 2010


Candidates are detected with this rather fuzzy Coccinelle semantic patch:

@@
expression E;
@@
  if (E != NULL) {
-   free(E);
    ...
  }
+ free(E);

When the remaining bits in “...” are about setting E to NULL and setting
properties related to E to 0, the conditional gets removed.

Signed-off-by: Cyril Brulebois <kibi at debian.org>
---
 xkb/XKBGAlloc.c |    8 +++-----
 xkb/XKBMAlloc.c |   16 ++++++----------
 2 files changed, 9 insertions(+), 15 deletions(-)

diff --git a/xkb/XKBGAlloc.c b/xkb/XKBGAlloc.c
index 3ec9eda..49f370e 100644
--- a/xkb/XKBGAlloc.c
+++ b/xkb/XKBGAlloc.c
@@ -833,11 +833,9 @@ XkbSectionPtr	section;
     if ((sz_rows>0)&&(_XkbAllocRows(section,sz_rows)!=Success))
 	return NULL;
     if ((sz_doodads>0)&&(_XkbAllocDoodads(section,sz_doodads)!=Success)) {
-	if (section->rows) {
-	    free(section->rows);
-	    section->rows= NULL;
-	    section->sz_rows= section->num_rows= 0;
-	}
+	free(section->rows);
+	section->rows= NULL;
+	section->sz_rows= section->num_rows= 0;
 	return NULL;
     }
     section->name= name;
diff --git a/xkb/XKBMAlloc.c b/xkb/XKBMAlloc.c
index 2681ba3..edaa079 100644
--- a/xkb/XKBMAlloc.c
+++ b/xkb/XKBMAlloc.c
@@ -822,11 +822,9 @@ XkbClientMapPtr	map;
     if (what&XkbKeySymsMask) {
 	free(map->key_sym_map);
 	map->key_sym_map = NULL;
-	if (map->syms!=NULL) {
-	    free(map->syms);
-	    map->size_syms= map->num_syms= 0;
-	    map->syms= NULL;
-	}
+	free(map->syms);
+	map->syms= NULL;
+	map->size_syms= map->num_syms= 0;
     }
     if ((what&XkbModifierMapMask)&&(map->modmap!=NULL)) {
 	free(map->modmap);
@@ -856,11 +854,9 @@ XkbServerMapPtr	map;
     if (what&XkbKeyActionsMask) {
 	free(map->key_acts);
 	map->key_acts = NULL;
-	if (map->acts!=NULL) {
-	    free(map->acts);
-	    map->num_acts= map->size_acts= 0;
-	    map->acts= NULL;
-	}
+	free(map->acts);
+	map->acts= NULL;
+	map->num_acts= map->size_acts= 0;
     }
     if ((what&XkbKeyBehaviorsMask)&&(map->behaviors!=NULL)) {
 	free(map->behaviors);
-- 
1.7.2.3



More information about the xorg-devel mailing list