From e4fcdcf61e5a08c8d29ce7c003108a958806cdac Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Wed, 18 Nov 2020 12:32:34 +0000 Subject: [PATCH] json-utils: Factor out a function to serialize a GError as JSON Signed-off-by: Simon McVittie <smcv@collabora.com> --- bin/system-info.c | 24 +++-------------------- steam-runtime-tools/json-utils-internal.h | 3 +++ steam-runtime-tools/json-utils.c | 16 +++++++++++++++ 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/bin/system-info.c b/bin/system-info.c index 529f21de5..0a4e8510f 100644 --- a/bin/system-info.c +++ b/bin/system-info.c @@ -1166,13 +1166,7 @@ main (int argc, } else { - json_builder_set_member_name (builder, "error-domain"); - json_builder_add_string_value (builder, - g_quark_to_string (error->domain)); - json_builder_set_member_name (builder, "error-code"); - json_builder_add_int_value (builder, error->code); - json_builder_set_member_name (builder, "error"); - json_builder_add_string_value (builder, error->message); + _srt_json_builder_add_error_members (builder, error); } json_builder_end_object (builder); @@ -1216,13 +1210,7 @@ main (int argc, } else { - json_builder_set_member_name (builder, "error-domain"); - json_builder_add_string_value (builder, - g_quark_to_string (error->domain)); - json_builder_set_member_name (builder, "error-code"); - json_builder_add_int_value (builder, error->code); - json_builder_set_member_name (builder, "error"); - json_builder_add_string_value (builder, error->message); + _srt_json_builder_add_error_members (builder, error); g_clear_error (&error); } @@ -1270,13 +1258,7 @@ main (int argc, } else { - json_builder_set_member_name (builder, "error-domain"); - json_builder_add_string_value (builder, - g_quark_to_string (error->domain)); - json_builder_set_member_name (builder, "error-code"); - json_builder_add_int_value (builder, error->code); - json_builder_set_member_name (builder, "error"); - json_builder_add_string_value (builder, error->message); + _srt_json_builder_add_error_members (builder, error); g_clear_error (&error); } diff --git a/steam-runtime-tools/json-utils-internal.h b/steam-runtime-tools/json-utils-internal.h index a62f42fd0..f01ddf524 100644 --- a/steam-runtime-tools/json-utils-internal.h +++ b/steam-runtime-tools/json-utils-internal.h @@ -51,3 +51,6 @@ void _srt_json_builder_add_strv_value (JsonBuilder *builder, const gchar *array_name, const gchar * const *values, gboolean allow_empty_array); + +void _srt_json_builder_add_error_members (JsonBuilder *builder, + const GError *error); diff --git a/steam-runtime-tools/json-utils.c b/steam-runtime-tools/json-utils.c index 26bae1d13..e4f42687d 100644 --- a/steam-runtime-tools/json-utils.c +++ b/steam-runtime-tools/json-utils.c @@ -225,3 +225,19 @@ _srt_json_builder_add_strv_value (JsonBuilder *builder, json_builder_end_array (builder); } } + +void +_srt_json_builder_add_error_members (JsonBuilder *builder, + const GError *error) +{ + g_return_if_fail (builder != NULL); + g_return_if_fail (error != NULL); + + json_builder_set_member_name (builder, "error-domain"); + json_builder_add_string_value (builder, + g_quark_to_string (error->domain)); + json_builder_set_member_name (builder, "error-code"); + json_builder_add_int_value (builder, error->code); + json_builder_set_member_name (builder, "error"); + json_builder_add_string_value (builder, error->message); +} -- GitLab