Commit 09346dcc authored by Pieter Noordhuis's avatar Pieter Noordhuis
Browse files

Fix preprocessor warnings

parent 0426ddad
...@@ -5,9 +5,11 @@ ...@@ -5,9 +5,11 @@
#include <assert.h> #include <assert.h>
#include "parser.h" #include "parser.h"
#define CALLBACK(X, args...) do { \ /* The redis_protocol_t argument to the callback function must be provided by
* the caller because "ISO C99 requires rest arguments to be used". */
#define CALLBACK(X, ...) do { \
if (callbacks && callbacks->on_##X) { \ if (callbacks && callbacks->on_##X) { \
if (callbacks->on_##X(parser, cur , ## args) == 0) { \ if (callbacks->on_##X(parser, __VA_ARGS__) == 0) { \
return pos-buf; \ return pos-buf; \
} \ } \
} \ } \
...@@ -72,9 +74,9 @@ static const char * strstate[] = { ...@@ -72,9 +74,9 @@ static const char * strstate[] = {
} while(0) } while(0)
#ifdef DEBUG #ifdef DEBUG
#define LOG(fmt, args...) do { \ #define LOG(fmt, ...) do { \
fprintf(stderr, fmt "\n" , ## args); \ fprintf(stderr, fmt "\n", __VA_ARGS__); \
fflush(stderr); \ fflush(stderr); \
} while(0) } while(0)
#include <ctype.h> #include <ctype.h>
...@@ -108,7 +110,7 @@ static const char *chrtos(char byte) { ...@@ -108,7 +110,7 @@ static const char *chrtos(char byte) {
return buf; return buf;
} }
#else #else
#define LOG(fmt, args...) do { ; } while (0) #define LOG(fmt, ...) do { ; } while (0)
#endif #endif
void redis_parser_init(redis_parser_t *parser, const redis_parser_cb_t *callbacks) { void redis_parser_init(redis_parser_t *parser, const redis_parser_cb_t *callbacks) {
...@@ -272,7 +274,7 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons ...@@ -272,7 +274,7 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons
if (cur->type == REDIS_STRING_T) { if (cur->type == REDIS_STRING_T) {
if (i64.i64 < 0) { /* nil bulk */ if (i64.i64 < 0) { /* nil bulk */
CALLBACK(nil); CALLBACK(nil, cur);
goto done; goto done;
} }
...@@ -288,13 +290,13 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons ...@@ -288,13 +290,13 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons
if (cur->type == REDIS_ARRAY_T) { if (cur->type == REDIS_ARRAY_T) {
if (i64.i64 < 0) { /* nil multi bulk */ if (i64.i64 < 0) { /* nil multi bulk */
CALLBACK(nil); CALLBACK(nil, cur);
goto done; goto done;
} }
/* Store remaining objects for a complete multi bulk */ /* Store remaining objects for a complete multi bulk */
cur->remaining = (unsigned)i64.i64; cur->remaining = (unsigned)i64.i64;
CALLBACK(array, cur->remaining); CALLBACK(array, cur, cur->remaining);
goto done; goto done;
} }
...@@ -302,7 +304,7 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons ...@@ -302,7 +304,7 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons
/* Setup content offset and length */ /* Setup content offset and length */
cur->coff = cur->poff + 1; cur->coff = cur->poff + 1;
cur->clen = nread - cur->coff - 1; /* remove \r */ cur->clen = nread - cur->coff - 1; /* remove \r */
CALLBACK(integer, i64.i64); CALLBACK(integer, cur, i64.i64);
goto done; goto done;
} }
...@@ -316,14 +318,14 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons ...@@ -316,14 +318,14 @@ size_t redis_parser_execute(redis_parser_t *parser, redis_protocol_t **dst, cons
/* Everything can be read */ /* Everything can be read */
if (remaining <= available) { if (remaining <= available) {
cur->remaining = 0; cur->remaining = 0;
CALLBACK(string, pos, remaining); CALLBACK(string, cur, pos, remaining);
ADVANCE(remaining); ADVANCE(remaining);
MOVE(bulk_cr); MOVE(bulk_cr);
} }
/* Not everything can be read */ /* Not everything can be read */
cur->remaining -= available; cur->remaining -= available;
CALLBACK(string, pos, available); CALLBACK(string, cur, pos, available);
pos += available; nread += available; pos += available; nread += available;
goto finalize; goto finalize;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment