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.
next
Daniel Mueller 2017-11-23 15:41:33 -08:00
parent 362cbe6c5f
commit 865bd462b4
No known key found for this signature in database
GPG Key ID: 952DD6F8F34D8B8E
5 changed files with 20 additions and 30 deletions

View File

@ -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"

View File

@ -5,12 +5,10 @@
#include <err.h>
#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;

View File

@ -5,12 +5,10 @@
#include <err.h>
#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;

View File

@ -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 */

View File

@ -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__)