2727
2828int json_variant_new (JsonVariant * * ret , JsonVariantType type ) {
2929 JsonVariant * v ;
30+
3031 v = new0 (JsonVariant , 1 );
3132 if (!v )
3233 return - ENOMEM ;
@@ -36,6 +37,8 @@ int json_variant_new(JsonVariant **ret, JsonVariantType type) {
3637}
3738
3839static int json_variant_deep_copy (JsonVariant * ret , JsonVariant * variant ) {
40+ int r ;
41+
3942 assert (ret );
4043 assert (variant );
4144
@@ -47,18 +50,18 @@ static int json_variant_deep_copy(JsonVariant *ret, JsonVariant *variant) {
4750 if (!ret -> string )
4851 return - ENOMEM ;
4952 } else if (variant -> type == JSON_VARIANT_ARRAY || variant -> type == JSON_VARIANT_OBJECT ) {
53+ size_t i ;
54+
5055 ret -> objects = new0 (JsonVariant , variant -> size );
5156 if (!ret -> objects )
5257 return - ENOMEM ;
5358
54- for (unsigned i = 0 ; i < variant -> size ; ++ i ) {
55- int r ;
59+ for (i = 0 ; i < variant -> size ; ++ i ) {
5660 r = json_variant_deep_copy (& ret -> objects [i ], & variant -> objects [i ]);
5761 if (r < 0 )
5862 return r ;
5963 }
60- }
61- else
64+ } else
6265 ret -> value = variant -> value ;
6366
6467 return 0 ;
@@ -72,7 +75,6 @@ static JsonVariant *json_variant_unref_inner(JsonVariant *variant) {
7275
7376 if (variant -> type == JSON_VARIANT_ARRAY || variant -> type == JSON_VARIANT_OBJECT )
7477 return json_object_unref (variant );
75-
7678 else if (variant -> type == JSON_VARIANT_STRING )
7779 free (variant -> string );
7880
@@ -91,11 +93,14 @@ static JsonVariant *json_raw_unref(JsonVariant *variant, size_t size) {
9193}
9294
9395static JsonVariant * json_object_unref (JsonVariant * variant ) {
96+ size_t i ;
97+
9498 assert (variant );
99+
95100 if (!variant -> objects )
96101 return NULL ;
97102
98- for (unsigned i = 0 ; i < variant -> size ; ++ i )
103+ for (i = 0 ; i < variant -> size ; ++ i )
99104 json_variant_unref_inner (& variant -> objects [i ]);
100105
101106 free (variant -> objects );
@@ -119,6 +124,7 @@ static JsonVariant **json_variant_array_unref(JsonVariant **variant) {
119124
120125 return NULL ;
121126}
127+
122128DEFINE_TRIVIAL_CLEANUP_FUNC (JsonVariant * * , json_variant_array_unref );
123129
124130JsonVariant * json_variant_unref (JsonVariant * variant ) {
@@ -127,7 +133,6 @@ JsonVariant *json_variant_unref(JsonVariant *variant) {
127133
128134 if (variant -> type == JSON_VARIANT_ARRAY || variant -> type == JSON_VARIANT_OBJECT )
129135 json_object_unref (variant );
130-
131136 else if (variant -> type == JSON_VARIANT_STRING )
132137 free (variant -> string );
133138
@@ -174,11 +179,13 @@ JsonVariant *json_variant_element(JsonVariant *variant, unsigned index) {
174179}
175180
176181JsonVariant * json_variant_value (JsonVariant * variant , const char * key ) {
182+ size_t i ;
183+
177184 assert (variant );
178185 assert (variant -> type == JSON_VARIANT_OBJECT );
179186 assert (variant -> objects );
180187
181- for (unsigned i = 0 ; i < variant -> size ; i += 2 ) {
188+ for (i = 0 ; i < variant -> size ; i += 2 ) {
182189 JsonVariant * p = & variant -> objects [i ];
183190 if (p -> type == JSON_VARIANT_STRING && streq (key , p -> string ))
184191 return & variant -> objects [i + 1 ];
@@ -624,9 +631,11 @@ static int json_scoped_parse(JsonVariant **tokens, size_t *i, size_t n, JsonVari
624631 assert (scope );
625632
626633 while ((var = * i < n ? tokens [(* i )++ ] : NULL ) != NULL ) {
627- bool stopper = ! json_is_value ( var ) && var -> value . integer == terminator ;
634+ bool stopper ;
628635 int r ;
629636
637+ stopper = !json_is_value (var ) && var -> value .integer == terminator ;
638+
630639 if (stopper ) {
631640 if (state != STATE_COMMA && size > 0 )
632641 goto error ;
@@ -655,7 +664,7 @@ static int json_scoped_parse(JsonVariant **tokens, size_t *i, size_t n, JsonVari
655664 state = STATE_VALUE ;
656665 }
657666 else if (state == STATE_VALUE ) {
658- _cleanup_jsonunref_ JsonVariant * v = NULL ;
667+ _cleanup_json_variant_unref_ JsonVariant * v = NULL ;
659668 size_t toadd = arr ? 1 : 2 ;
660669
661670 if (!json_is_value (var )) {
@@ -723,7 +732,7 @@ static int json_parse_tokens(JsonVariant **tokens, size_t ntokens, JsonVariant *
723732 size_t it = 0 ;
724733 int r ;
725734 JsonVariant * e ;
726- _cleanup_jsonunref_ JsonVariant * p = NULL ;
735+ _cleanup_json_variant_unref_ JsonVariant * p = NULL ;
727736
728737 assert (tokens );
729738 assert (ntokens );
@@ -767,8 +776,8 @@ static int json_tokens(const char *string, size_t size, JsonVariant ***tokens, s
767776
768777 p = buf ;
769778 for (;;) {
779+ _cleanup_json_variant_unref_ JsonVariant * var = NULL ;
770780 _cleanup_free_ char * rstr = NULL ;
771- _cleanup_jsonunref_ JsonVariant * var = NULL ;
772781
773782 t = json_tokenize (& p , & rstr , & v , & json_state , NULL );
774783
0 commit comments