wmem: allow wmem_destroy_list to ignore a NULL list.
[metze/wireshark/wip.git] / wsutil / json_dumper.c
index 5162b6b8c90ba84c2d46da57b1ef9fa6f761a381..c3ca01a86c09df8459f16d33984215a98a78e800 100644 (file)
@@ -95,7 +95,7 @@ json_dumper_bad(json_dumper *dumper, enum json_dumper_change change,
         /* Console output can be slow, disable log calls to speed up fuzzing. */
         return;
     }
-    g_warning("Bad json_dumper state: %s; change=%d type=%d depth=%d prev/curr/next state=%02x %02x %02x",
+    g_error("Bad json_dumper state: %s; change=%d type=%d depth=%d prev/curr/next state=%02x %02x %02x",
             what, change, type, dumper->current_depth, states[0], states[1], states[2]);
 }
 
@@ -306,21 +306,28 @@ json_dumper_value_string(json_dumper *dumper, const char *value)
 }
 
 void
-json_dumper_value_anyf(json_dumper *dumper, const char *format, ...)
+json_dumper_value_va_list(json_dumper *dumper, const char *format, va_list ap)
 {
-    va_list ap;
     if (!json_dumper_check_state(dumper, JSON_DUMPER_SET_VALUE, JSON_DUMPER_TYPE_VALUE)) {
         return;
     }
 
     prepare_token(dumper);
-    va_start(ap, format);
     vfprintf(dumper->output_file, format, ap);
-    va_end(ap);
 
     dumper->state[dumper->current_depth] = JSON_DUMPER_TYPE_VALUE;
 }
 
+void
+json_dumper_value_anyf(json_dumper *dumper, const char *format, ...)
+{
+    va_list ap;
+
+    va_start(ap, format);
+    json_dumper_value_va_list(dumper, format, ap);
+    va_end(ap);
+}
+
 gboolean
 json_dumper_finish(json_dumper *dumper)
 {