docs: update for new data placement options
[fio.git] / json.h
diff --git a/json.h b/json.h
index 09c2f18715c61911dfda6dacc860ef44475a9b3b..66bb06b1f17024b6759b585dfc5d9b9afcfa0326 100644 (file)
--- a/json.h
+++ b/json.h
@@ -57,9 +57,9 @@ static inline int json_object_add_value_int(struct json_object *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_INTEGER,
-               .integer_number = val,
        };
 
+       arg.integer_number = val;
        return json_object_add_value_type(obj, name, &arg);
 }
 
@@ -68,9 +68,9 @@ static inline int json_object_add_value_float(struct json_object *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_FLOAT,
-               .float_number = val,
        };
 
+       arg.float_number = val;
        return json_object_add_value_type(obj, name, &arg);
 }
 
@@ -80,9 +80,14 @@ static inline int json_object_add_value_string(struct json_object *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_STRING,
-               .string = (char *)val,
        };
+       union {
+               const char *a;
+               char *b;
+       } string;
 
+       string.a = val ? val : "";
+       arg.string = string.b;
        return json_object_add_value_type(obj, name, &arg);
 }
 
@@ -92,9 +97,9 @@ static inline int json_object_add_value_object(struct json_object *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_OBJECT,
-               .object = val,
        };
 
+       arg.object = val;
        return json_object_add_value_type(obj, name, &arg);
 }
 
@@ -104,9 +109,9 @@ static inline int json_object_add_value_array(struct json_object *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_ARRAY,
-               .array = val,
        };
 
+       arg.array = val;
        return json_object_add_value_type(obj, name, &arg);
 }
 
@@ -118,9 +123,9 @@ static inline int json_array_add_value_int(struct json_array *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_INTEGER,
-               .integer_number = val,
        };
 
+       arg.integer_number = val;
        return json_array_add_value_type(obj, &arg);
 }
 
@@ -129,9 +134,9 @@ static inline int json_array_add_value_float(struct json_array *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_FLOAT,
-               .float_number = val,
        };
 
+       arg.float_number = val;
        return json_array_add_value_type(obj, &arg);
 }
 
@@ -140,9 +145,9 @@ static inline int json_array_add_value_string(struct json_array *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_STRING,
-               .string = (char *)val,
        };
 
+       arg.string = (char *)val;
        return json_array_add_value_type(obj, &arg);
 }
 
@@ -151,9 +156,9 @@ static inline int json_array_add_value_object(struct json_array *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_OBJECT,
-               .object = val,
        };
 
+       arg.object = val;
        return json_array_add_value_type(obj, &arg);
 }
 
@@ -162,9 +167,9 @@ static inline int json_array_add_value_array(struct json_array *obj,
 {
        struct json_value arg = {
                .type = JSON_TYPE_ARRAY,
-               .array = val,
        };
 
+       arg.array = val;
        return json_array_add_value_type(obj, &arg);
 }