if (!fr_json_object_is_type(object, json_type_array)) return 0;
array_obj = json_object_get_array(object);
- if (selector->slice[0] >= array_obj->length) continue;
+ if ((selector->slice[0] < 0) || ((size_t)selector->slice[0] >= array_obj->length)) continue;
ret = jpath_evaluate(ctx, tail, dst_type, dst_enumv,
array_obj->array[selector->slice[0]], node->next);
* Descending
*/
if (step < 0) for (i = start; (i > end) && (i >= 0); i += step) {
- rad_assert((i >= 0) && (i < array_obj->length));
+ rad_assert((i >= 0) && ((size_t)i < array_obj->length));
ret = jpath_evaluate(ctx, tail, dst_type, dst_enumv,
array_obj->array[i], node->next);
if (ret < 0) return ret;
/*
* Ascending
*/
- } else for (i = start; (i < end) && (i < array_obj->length); i += step) {
- rad_assert((i >= 0) && (i < array_obj->length));
+ } else for (i = start; (i < end) && ((size_t)i < array_obj->length); i += step) {
+ rad_assert((i >= 0) && ((size_t)i < array_obj->length));
ret = jpath_evaluate(ctx, tail, dst_type, dst_enumv,
array_obj->array[i], node->next);
if (ret < 0) return ret;
struct array_list *array_obj;
array_obj = json_object_get_array(object);
- for (i = 0; i < array_obj->length; i++) {
+ for (i = 0; (size_t)i < array_obj->length; i++) {
ret = jpath_evaluate(ctx, tail, dst_type, dst_enumv,
array_obj->array[i], node->next);
if (ret < 0) return ret;
* Descend into each element of the array
*/
array_obj = json_object_get_array(object);
- for (i = 0; i < array_obj->length; i++) {
+ for (i = 0; (size_t)i < array_obj->length; i++) {
ret = jpath_evaluate(ctx, tail, dst_type, dst_enumv,
array_obj->array[i], node);
if (ret < 0) return ret;
entry = entry->next)
#else /* ANSI C or MSC */
# define json_object_object_foreach(obj, key, val) \
- char *key = NULL; \
+ char const *key = NULL; \
struct json_object *val = NULL; \
struct lh_entry *entry; \
union ctn_u {const void *cdata; void *data; } ctn; \
for (entry = json_object_get_object(obj)->head; \
- (entry ? (key = (char *)entry->k, ctn.cdata = entry->v, \
+ (entry ? (key = (char const *)entry->k, ctn.cdata = entry->v, \
val = (struct json_object *)ctn.data, entry) : 0); entry = entry->next)
#endif /* defined(__GNUC__) && !defined(__STRICT_ANSI__) */
#endif