From e6c40349b81ac2915ce90b7e399eb33719a1fd24 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 24 Aug 2022 16:42:45 +0000 Subject: [PATCH] modem-helpers-cinterion: rework CNMI test response parser We setup all output variables with g_autoptr() and then use g_steal_pointer() to return the needed ones. --- .../cinterion/mm-modem-helpers-cinterion.c | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/plugins/cinterion/mm-modem-helpers-cinterion.c b/plugins/cinterion/mm-modem-helpers-cinterion.c index 0bf3a078..9219bff4 100644 --- a/plugins/cinterion/mm-modem-helpers-cinterion.c +++ b/plugins/cinterion/mm-modem-helpers-cinterion.c @@ -556,12 +556,12 @@ mm_cinterion_parse_cnmi_test (const gchar *response, { g_autoptr(GRegex) r = NULL; g_autoptr(GMatchInfo) match_info = NULL; + g_autoptr(GArray) tmp_supported_mode = NULL; + g_autoptr(GArray) tmp_supported_mt = NULL; + g_autoptr(GArray) tmp_supported_bm = NULL; + g_autoptr(GArray) tmp_supported_ds = NULL; + g_autoptr(GArray) tmp_supported_bfr = NULL; GError *inner_error = NULL; - GArray *tmp_supported_mode = NULL; - GArray *tmp_supported_mt = NULL; - GArray *tmp_supported_bm = NULL; - GArray *tmp_supported_ds = NULL; - GArray *tmp_supported_bfr = NULL; if (!response) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Missing response"); @@ -619,25 +619,20 @@ mm_cinterion_parse_cnmi_test (const gchar *response, out: if (inner_error) { - g_clear_pointer (&tmp_supported_mode, g_array_unref); - g_clear_pointer (&tmp_supported_mt, g_array_unref); - g_clear_pointer (&tmp_supported_bm, g_array_unref); - g_clear_pointer (&tmp_supported_ds, g_array_unref); - g_clear_pointer (&tmp_supported_bfr, g_array_unref); g_propagate_error (error, inner_error); return FALSE; } if (supported_mode) - *supported_mode = tmp_supported_mode; + *supported_mode = g_steal_pointer (&tmp_supported_mode); if (supported_mt) - *supported_mt = tmp_supported_mt; + *supported_mt = g_steal_pointer (&tmp_supported_mt); if (supported_bm) - *supported_bm = tmp_supported_bm; + *supported_bm = g_steal_pointer (&tmp_supported_bm); if (supported_ds) - *supported_ds = tmp_supported_ds; + *supported_ds = g_steal_pointer (&tmp_supported_ds); if (supported_bfr) - *supported_bfr = tmp_supported_bfr; + *supported_bfr = g_steal_pointer (&tmp_supported_bfr); return TRUE; }