From 85324a5c28c6ada4b1f792a19b757557423e80d5 Mon Sep 17 00:00:00 2001 From: "Erik B. Andersen" Date: Thu, 12 Oct 2023 08:44:21 -0700 Subject: [PATCH] Adjust foreach macros to not trigger VS warning C4706 --- src/jansson.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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) {