From 4f64563ded3e62b7bd42340001cdb2779a362379 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Mon, 30 Aug 2004 06:51:42 +0000 Subject: [PATCH] Created handy generic pointer-freeing macros in gen_defs.h: FREE_AND_NULL, FREE_LIST, and FREE_LIST_ITEMS. --- src/xpdev/gen_defs.h | 6 ++++++ src/xpdev/str_list.c | 6 +----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/xpdev/gen_defs.h b/src/xpdev/gen_defs.h index d9c3ba2715..a2a7e97b7a 100644 --- a/src/xpdev/gen_defs.h +++ b/src/xpdev/gen_defs.h @@ -249,5 +249,11 @@ typedef struct { #define FREE free #endif +/********************************/ +/* Handy Pointer-freeing Macros */ +/********************************/ +#define FREE_AND_NULL(x) if(x!=NULL) { FREE(x); x=NULL; } +#define FREE_LIST_ITEMS(list,i) for(i=0;list && list[i];i++) { FREE_AND_NULL(list[i]); } +#define FREE_LIST(list,i) FREE_LIST_ITEMS(list,i) FREE_AND_NULL(list) #endif /* Don't add anything after this #endif statement */ diff --git a/src/xpdev/str_list.c b/src/xpdev/str_list.c index b616fa1926..1edabb5241 100644 --- a/src/xpdev/str_list.c +++ b/src/xpdev/str_list.c @@ -344,11 +344,7 @@ void strListFreeStrings(str_list_t list) { size_t i; - if(list!=NULL) { - for(i=0; list[i]!=NULL; i++) - free(list[i]); - list[0]=NULL; /* terminate */ - } + FREE_LIST_ITEMS(list,i); } void strListFree(str_list_t* list) -- GitLab