From 865bd462b4d71c6e0d5edcae148a5b6a6c208ffb Mon Sep 17 00:00:00 2001 From: Daniel Mueller Date: Thu, 23 Nov 2017 15:41:33 -0800 Subject: [PATCH] do not check for NULL in FREE macro free(3) is safe to invoke on a NULL pointer, in which case no action is taken. This change adjusts the FREE macros to omit this unnecessary check. --- i3-config-wizard/main.c | 10 ++++------ i3-input/i3-input.h | 10 ++++------ i3-nagbar/i3-nagbar.h | 10 ++++------ i3bar/include/util.h | 10 ++++------ include/util.h | 10 ++++------ 5 files changed, 20 insertions(+), 30 deletions(-) diff --git a/i3-config-wizard/main.c b/i3-config-wizard/main.c index dd58fd12..cbea624e 100644 --- a/i3-config-wizard/main.c +++ b/i3-config-wizard/main.c @@ -58,12 +58,10 @@ #error "SYSCONFDIR not defined" #endif -#define FREE(pointer) \ - do { \ - if (pointer != NULL) { \ - free(pointer); \ - pointer = NULL; \ - } \ +#define FREE(pointer) \ + do { \ + free(pointer); \ + pointer = NULL; \ } while (0) #include "xcb.h" diff --git a/i3-input/i3-input.h b/i3-input/i3-input.h index d347506f..d7aae66b 100644 --- a/i3-input/i3-input.h +++ b/i3-input/i3-input.h @@ -5,12 +5,10 @@ #include #define die(...) errx(EXIT_FAILURE, __VA_ARGS__); -#define FREE(pointer) \ - do { \ - if (pointer != NULL) { \ - free(pointer); \ - pointer = NULL; \ - } \ +#define FREE(pointer) \ + do { \ + free(pointer); \ + pointer = NULL; \ } while (0) extern xcb_window_t root; diff --git a/i3-nagbar/i3-nagbar.h b/i3-nagbar/i3-nagbar.h index c5e94cc6..cb672bea 100644 --- a/i3-nagbar/i3-nagbar.h +++ b/i3-nagbar/i3-nagbar.h @@ -5,12 +5,10 @@ #include #define die(...) errx(EXIT_FAILURE, __VA_ARGS__); -#define FREE(pointer) \ - do { \ - if (pointer != NULL) { \ - free(pointer); \ - pointer = NULL; \ - } \ +#define FREE(pointer) \ + do { \ + free(pointer); \ + pointer = NULL; \ } while (0) #define xmacro(atom) xcb_atom_t A_##atom; diff --git a/i3bar/include/util.h b/i3bar/include/util.h index 3af79ed7..1f563611 100644 --- a/i3bar/include/util.h +++ b/i3bar/include/util.h @@ -20,12 +20,10 @@ #define STARTS_WITH(string, len, needle) (((len) >= strlen((needle))) && strncasecmp((string), (needle), strlen((needle))) == 0) /* Securely free p */ -#define FREE(p) \ - do { \ - if (p != NULL) { \ - free(p); \ - p = NULL; \ - } \ +#define FREE(p) \ + do { \ + free(p); \ + p = NULL; \ } while (0) /* Securely free single-linked list */ diff --git a/include/util.h b/include/util.h index 526ab881..3547d8d7 100644 --- a/include/util.h +++ b/include/util.h @@ -47,12 +47,10 @@ break; \ } -#define FREE(pointer) \ - do { \ - if (pointer != NULL) { \ - free(pointer); \ - pointer = NULL; \ - } \ +#define FREE(pointer) \ + do { \ + free(pointer); \ + pointer = NULL; \ } while (0) #define CALL(obj, member, ...) obj->member(obj, ##__VA_ARGS__)