mm-common-helpers: add mm_autoptr helpers for GRegex and GMatchInfo

Alias them to g_autoptr() on glib >= 2.44, otherwise re-implement.
This commit is contained in:
Dan Williams
2018-12-04 17:39:15 +00:00
parent 9c15579347
commit 397faef3c5
2 changed files with 29 additions and 21 deletions
+6 -21
View File
@@ -71,8 +71,8 @@ gchar *
mm_altair_parse_ceer_response (const gchar *response,
GError **error)
{
GRegex *r;
GMatchInfo *match_info = NULL;
g_autoptr(GRegex) r = NULL;
g_autoptr(GMatchInfo) match_info = NULL;
gchar *ceer_response = NULL;
@@ -93,8 +93,6 @@ mm_altair_parse_ceer_response (const gchar *response,
if (!g_regex_match (r, response, 0, &match_info)) {
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Could not parse +CEER response");
g_match_info_free (match_info);
g_regex_unref (r);
return NULL;
}
@@ -104,8 +102,6 @@ mm_altair_parse_ceer_response (const gchar *response,
ceer_response = g_strdup ("");
}
g_match_info_free (match_info);
g_regex_unref (r);
return ceer_response;
}
@@ -115,15 +111,13 @@ mm_altair_parse_ceer_response (const gchar *response,
guint
mm_altair_parse_cid (const gchar *response, GError **error)
{
GRegex *regex;
GMatchInfo *match_info;
mm_autoptr(GRegex) regex = NULL;
mm_autoptr(GMatchInfo) match_info = NULL;
guint cid = -1;
regex = g_regex_new ("\\%CGINFO:\\s*(\\d+)", G_REGEX_RAW, 0, NULL);
g_assert (regex);
if (!g_regex_match_full (regex, response, strlen (response), 0, 0, &match_info, error)) {
g_match_info_free (match_info);
g_regex_unref (regex);
return -1;
}
@@ -133,8 +127,6 @@ mm_altair_parse_cid (const gchar *response, GError **error)
MM_CORE_ERROR_FAILED,
"Failed to parse %%CGINFO=\"cid\",1 response");
g_match_info_free (match_info);
g_regex_unref (regex);
return cid;
}
@@ -144,8 +136,8 @@ mm_altair_parse_cid (const gchar *response, GError **error)
MMPco *
mm_altair_parse_vendor_pco_info (const gchar *pco_info, GError **error)
{
GRegex *regex;
GMatchInfo *match_info;
g_autoptr(GRegex) regex = NULL;
g_autoptr(GMatchInfo) match_info = NULL;
MMPco *pco = NULL;
gint num_matches;
@@ -163,8 +155,6 @@ mm_altair_parse_vendor_pco_info (const gchar *pco_info, GError **error)
0, NULL);
g_assert (regex);
if (!g_regex_match_full (regex, pco_info, strlen (pco_info), 0, 0, &match_info, error)) {
g_match_info_free (match_info);
g_regex_unref (regex);
return NULL;
}
@@ -175,8 +165,6 @@ mm_altair_parse_vendor_pco_info (const gchar *pco_info, GError **error)
MM_CORE_ERROR_FAILED,
"Failed to parse substrings, number of matches: %d",
num_matches);
g_match_info_free (match_info);
g_regex_unref (regex);
return NULL;
}
@@ -288,8 +276,5 @@ mm_altair_parse_vendor_pco_info (const gchar *pco_info, GError **error)
break;
}
g_match_info_free (match_info);
g_regex_unref (regex);
return pco;
}