Add do while(0) protection for macros
Wrapping multi-line macros in do...while(0) statement prevents potential dangling else problem.
This commit is contained in:
parent
4ad99c69a2
commit
9e174e8f7d
13
hiredis.h
13
hiredis.h
@ -220,18 +220,21 @@ typedef struct {
|
|||||||
/**
|
/**
|
||||||
* Helper macros to initialize options to their specified fields.
|
* Helper macros to initialize options to their specified fields.
|
||||||
*/
|
*/
|
||||||
#define REDIS_OPTIONS_SET_TCP(opts, ip_, port_) \
|
#define REDIS_OPTIONS_SET_TCP(opts, ip_, port_) do { \
|
||||||
(opts)->type = REDIS_CONN_TCP; \
|
(opts)->type = REDIS_CONN_TCP; \
|
||||||
(opts)->endpoint.tcp.ip = ip_; \
|
(opts)->endpoint.tcp.ip = ip_; \
|
||||||
(opts)->endpoint.tcp.port = port_;
|
(opts)->endpoint.tcp.port = port_; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
#define REDIS_OPTIONS_SET_UNIX(opts, path) \
|
#define REDIS_OPTIONS_SET_UNIX(opts, path) do { \
|
||||||
(opts)->type = REDIS_CONN_UNIX; \
|
(opts)->type = REDIS_CONN_UNIX; \
|
||||||
(opts)->endpoint.unix_socket = path;
|
(opts)->endpoint.unix_socket = path; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
#define REDIS_OPTIONS_SET_PRIVDATA(opts, data, dtor) \
|
#define REDIS_OPTIONS_SET_PRIVDATA(opts, data, dtor) do { \
|
||||||
(opts)->privdata = data; \
|
(opts)->privdata = data; \
|
||||||
(opts)->free_privdata = dtor; \
|
(opts)->free_privdata = dtor; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
typedef struct redisContextFuncs {
|
typedef struct redisContextFuncs {
|
||||||
void (*free_privctx)(void *);
|
void (*free_privctx)(void *);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user