diff --git a/src/jansson.h b/src/jansson.h index 391c85e9..1309a514 100644 --- a/src/jansson.h +++ b/src/jansson.h @@ -213,14 +213,14 @@ int json_object_iter_set_new(json_t *object, void *iter, json_t *value); #define json_object_foreach(object, key, value) \ for (key = json_object_iter_key(json_object_iter(object)); \ - key && (value = json_object_iter_value(json_object_key_to_iter(key))); \ + key && ((value = json_object_iter_value(json_object_key_to_iter(key))) != 0); \ key = json_object_iter_key( \ json_object_iter_next(object, json_object_key_to_iter(key)))) #define json_object_keylen_foreach(object, key, key_len, value) \ for (key = json_object_iter_key(json_object_iter(object)), \ key_len = json_object_iter_key_len(json_object_key_to_iter(key)); \ - key && (value = json_object_iter_value(json_object_key_to_iter(key))); \ + key && ((value = json_object_iter_value(json_object_key_to_iter(key))) != 0); \ key = json_object_iter_key( \ json_object_iter_next(object, json_object_key_to_iter(key))), \ key_len = json_object_iter_key_len(json_object_key_to_iter(key))) @@ -228,7 +228,7 @@ int json_object_iter_set_new(json_t *object, void *iter, json_t *value); #define json_object_foreach_safe(object, n, key, value) \ for (key = json_object_iter_key(json_object_iter(object)), \ n = json_object_iter_next(object, json_object_key_to_iter(key)); \ - key && (value = json_object_iter_value(json_object_key_to_iter(key))); \ + key && ((value = json_object_iter_value(json_object_key_to_iter(key))) != 0); \ key = json_object_iter_key(n), \ n = json_object_iter_next(object, json_object_key_to_iter(key))) @@ -236,13 +236,13 @@ int json_object_iter_set_new(json_t *object, void *iter, json_t *value); for (key = json_object_iter_key(json_object_iter(object)), \ n = json_object_iter_next(object, json_object_key_to_iter(key)), \ key_len = json_object_iter_key_len(json_object_key_to_iter(key)); \ - key && (value = json_object_iter_value(json_object_key_to_iter(key))); \ + key && ((value = json_object_iter_value(json_object_key_to_iter(key))) != 0); \ key = json_object_iter_key(n), key_len = json_object_iter_key_len(n), \ n = json_object_iter_next(object, json_object_key_to_iter(key))) #define json_array_foreach(array, index, value) \ for (index = 0; \ - index < json_array_size(array) && (value = json_array_get(array, index)); \ + index < json_array_size(array) && ((value = json_array_get(array, index)) != 0);\ index++) static JSON_INLINE int json_object_set(json_t *object, const char *key, json_t *value) {