aboutsummaryrefslogtreecommitdiff
path: root/plugins/cinterion
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/cinterion')
-rw-r--r--plugins/cinterion/mm-modem-helpers-cinterion.c62
-rw-r--r--plugins/cinterion/tests/test-modem-helpers-cinterion.c42
2 files changed, 39 insertions, 65 deletions
diff --git a/plugins/cinterion/mm-modem-helpers-cinterion.c b/plugins/cinterion/mm-modem-helpers-cinterion.c
index a75eb530..0bf3a078 100644
--- a/plugins/cinterion/mm-modem-helpers-cinterion.c
+++ b/plugins/cinterion/mm-modem-helpers-cinterion.c
@@ -554,14 +554,14 @@ mm_cinterion_parse_cnmi_test (const gchar *response,
GArray **supported_bfr,
GError **error)
{
- GRegex *r;
- GMatchInfo *match_info;
- 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;
+ g_autoptr(GRegex) r = NULL;
+ g_autoptr(GMatchInfo) match_info = 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");
@@ -576,57 +576,48 @@ mm_cinterion_parse_cnmi_test (const gchar *response,
g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, &inner_error);
if (!inner_error && g_match_info_matches (match_info)) {
if (supported_mode) {
- gchar *str;
+ g_autofree gchar *str = NULL;
str = mm_get_string_unquoted_from_match_info (match_info, 1);
tmp_supported_mode = mm_parse_uint_list (str, &inner_error);
- g_free (str);
if (inner_error)
goto out;
}
if (supported_mt) {
- gchar *str;
+ g_autofree gchar *str = NULL;
str = mm_get_string_unquoted_from_match_info (match_info, 2);
tmp_supported_mt = mm_parse_uint_list (str, &inner_error);
- g_free (str);
if (inner_error)
goto out;
}
if (supported_bm) {
- gchar *str;
+ g_autofree gchar *str = NULL;
str = mm_get_string_unquoted_from_match_info (match_info, 3);
tmp_supported_bm = mm_parse_uint_list (str, &inner_error);
- g_free (str);
if (inner_error)
goto out;
}
if (supported_ds) {
- gchar *str;
+ g_autofree gchar *str = NULL;
str = mm_get_string_unquoted_from_match_info (match_info, 4);
tmp_supported_ds = mm_parse_uint_list (str, &inner_error);
- g_free (str);
if (inner_error)
goto out;
}
if (supported_bfr) {
- gchar *str;
+ g_autofree gchar *str = NULL;
str = mm_get_string_unquoted_from_match_info (match_info, 5);
tmp_supported_bfr = mm_parse_uint_list (str, &inner_error);
- g_free (str);
if (inner_error)
goto out;
}
}
out:
-
- g_match_info_free (match_info);
- g_regex_unref (r);
-
if (inner_error) {
g_clear_pointer (&tmp_supported_mode, g_array_unref);
g_clear_pointer (&tmp_supported_mt, g_array_unref);
@@ -763,9 +754,9 @@ mm_cinterion_parse_sind_response (const gchar *response,
guint *value,
GError **error)
{
- GRegex *r;
- GMatchInfo *match_info;
- guint errors = 0;
+ g_autoptr(GRegex) r = NULL;
+ g_autoptr(GMatchInfo) match_info = NULL;
+ guint errors = 0;
if (!response) {
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Missing response");
@@ -788,9 +779,6 @@ mm_cinterion_parse_sind_response (const gchar *response,
} else
errors++;
- g_match_info_free (match_info);
- g_regex_unref (r);
-
if (errors > 0) {
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Failed parsing ^SIND response");
return FALSE;
@@ -836,8 +824,8 @@ mm_cinterion_parse_swwan_response (const gchar *response,
gpointer log_object,
GError **error)
{
- GRegex *r;
- GMatchInfo *match_info;
+ g_autoptr(GRegex) r = NULL;
+ g_autoptr(GMatchInfo) match_info = NULL;
GError *inner_error = NULL;
MMBearerConnectionStatus status;
@@ -883,9 +871,6 @@ mm_cinterion_parse_swwan_response (const gchar *response,
g_match_info_next (match_info, &inner_error);
}
- g_match_info_free (match_info);
- g_regex_unref (r);
-
if (status == MM_BEARER_CONNECTION_STATUS_UNKNOWN)
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
"No state returned for CID %u", cid);
@@ -1078,10 +1063,10 @@ mm_cinterion_parse_slcc_list (const gchar *str,
GList **out_list,
GError **error)
{
- GRegex *r;
- GList *list = NULL;
- GError *inner_error = NULL;
- GMatchInfo *match_info = NULL;
+ g_autoptr(GRegex) r = NULL;
+ g_autoptr(GMatchInfo) match_info = NULL;
+ GList *list = NULL;
+ GError *inner_error = NULL;
static const MMCallDirection cinterion_call_direction[] = {
[0] = MM_CALL_DIRECTION_OUTGOING,
@@ -1158,9 +1143,6 @@ mm_cinterion_parse_slcc_list (const gchar *str,
}
out:
- g_clear_pointer (&match_info, g_match_info_free);
- g_regex_unref (r);
-
if (inner_error) {
mm_cinterion_call_info_list_free (list);
g_propagate_error (error, inner_error);
diff --git a/plugins/cinterion/tests/test-modem-helpers-cinterion.c b/plugins/cinterion/tests/test-modem-helpers-cinterion.c
index c3e7e9e5..8332700b 100644
--- a/plugins/cinterion/tests/test-modem-helpers-cinterion.c
+++ b/plugins/cinterion/tests/test-modem-helpers-cinterion.c
@@ -1192,18 +1192,17 @@ test_smong_response_no_match (void)
/* Test ^SLCC URCs */
static void
-common_test_slcc_urc (const gchar *urc,
+common_test_slcc_urc (const gchar *urc,
const MMCallInfo *expected_call_info_list,
- guint expected_call_info_list_size)
+ guint expected_call_info_list_size)
{
- GError *error = NULL;
- GRegex *slcc_regex = NULL;
- gboolean result;
- GMatchInfo *match_info = NULL;
- gchar *str;
- GList *call_info_list = NULL;
- GList *l;
-
+ g_autoptr(GRegex) slcc_regex = NULL;
+ g_autoptr(GMatchInfo) match_info = NULL;
+ g_autofree gchar *str = NULL;
+ GError *error = NULL;
+ GList *call_info_list = NULL;
+ GList *l;
+ gboolean result;
slcc_regex = mm_cinterion_get_slcc_regex ();
@@ -1230,8 +1229,8 @@ common_test_slcc_urc (const gchar *urc,
for (l = call_info_list; l; l = g_list_next (l)) {
const MMCallInfo *call_info = (const MMCallInfo *)(l->data);
- gboolean found = FALSE;
- guint i;
+ gboolean found = FALSE;
+ guint i;
g_debug ("call at index %u: direction %s, state %s, number %s",
call_info->index,
@@ -1248,10 +1247,6 @@ common_test_slcc_urc (const gchar *urc,
g_assert (found);
}
- g_match_info_free (match_info);
- g_regex_unref (slcc_regex);
- g_free (str);
-
mm_cinterion_call_info_list_free (call_info_list);
}
@@ -1322,12 +1317,12 @@ common_test_ctzu_urc (const gchar *urc,
gint expected_offset,
gint expected_dst_offset)
{
- GError *error = NULL;
- GRegex *ctzu_regex = NULL;
- gboolean result;
- GMatchInfo *match_info = NULL;
- gchar *iso8601;
- MMNetworkTimezone *tz = NULL;
+ g_autoptr(GRegex) ctzu_regex = NULL;
+ g_autoptr(GMatchInfo) match_info = NULL;
+ g_autofree gchar *iso8601 = NULL;
+ GError *error = NULL;
+ gboolean result;
+ MMNetworkTimezone *tz = NULL;
ctzu_regex = mm_cinterion_get_ctzu_regex ();
@@ -1342,7 +1337,6 @@ common_test_ctzu_urc (const gchar *urc,
g_assert (iso8601);
g_assert_cmpstr (expected_iso8601, ==, iso8601);
- g_free (iso8601);
g_assert (tz);
g_assert_cmpint (expected_offset, ==, mm_network_timezone_get_offset (tz));
@@ -1351,8 +1345,6 @@ common_test_ctzu_urc (const gchar *urc,
g_assert_cmpuint ((guint)expected_dst_offset, ==, mm_network_timezone_get_dst_offset (tz));
g_object_unref (tz);
- g_match_info_free (match_info);
- g_regex_unref (ctzu_regex);
}
static void