summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-05-27 16:16:41 +0200
committerThomas Haller <thaller@redhat.com>2019-06-13 16:10:53 +0200
commit6da5ad29623b58ff6d77202c86e7fc11842b35f7 (patch)
tree3cf04a3ffab31cb487d35ae81b984dd8dc9aee33
parentc165c6a671f03a2e48549f247435d953710ce7dc (diff)
downloadNetworkManager-6da5ad29623b58ff6d77202c86e7fc11842b35f7.tar.gz
libnm: cleanup GSList/GPtrArray to/from strv conversion
-rw-r--r--libnm-core/nm-core-internal.h4
-rw-r--r--libnm-core/nm-utils.c54
2 files changed, 35 insertions, 23 deletions
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
index a5114ba8d8..406b170e15 100644
--- a/libnm-core/nm-core-internal.h
+++ b/libnm-core/nm-core-internal.h
@@ -276,10 +276,10 @@ GPtrArray *_nm_utils_copy_object_array (const GPtrArray *array);
gssize _nm_utils_ptrarray_find_first (gconstpointer *list, gssize len, gconstpointer needle);
GSList * _nm_utils_strv_to_slist (char **strv, gboolean deep_copy);
-char ** _nm_utils_slist_to_strv (GSList *slist, gboolean deep_copy);
+char ** _nm_utils_slist_to_strv (const GSList *slist, gboolean deep_copy);
GPtrArray * _nm_utils_strv_to_ptrarray (char **strv);
-char ** _nm_utils_ptrarray_to_strv (GPtrArray *ptrarray);
+char ** _nm_utils_ptrarray_to_strv (const GPtrArray *ptrarray);
gboolean _nm_utils_check_file (const char *filename,
gint64 check_owner,
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index dc0b5b814e..31ef2978a1 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -955,43 +955,51 @@ _nm_utils_bytes_from_dbus (GVariant *dbus_value,
g_value_take_boxed (prop_value, bytes);
}
+/*****************************************************************************/
+
GSList *
_nm_utils_strv_to_slist (char **strv, gboolean deep_copy)
{
- int i;
GSList *list = NULL;
+ gsize i;
- if (strv) {
- if (deep_copy) {
- for (i = 0; strv[i]; i++)
- list = g_slist_prepend (list, g_strdup (strv[i]));
- } else {
- for (i = 0; strv[i]; i++)
- list = g_slist_prepend (list, strv[i]);
- }
- }
+ if (!strv)
+ return NULL;
+ if (deep_copy) {
+ for (i = 0; strv[i]; i++)
+ list = g_slist_prepend (list, g_strdup (strv[i]));
+ } else {
+ for (i = 0; strv[i]; i++)
+ list = g_slist_prepend (list, strv[i]);
+ }
return g_slist_reverse (list);
}
char **
-_nm_utils_slist_to_strv (GSList *slist, gboolean deep_copy)
+_nm_utils_slist_to_strv (const GSList *slist, gboolean deep_copy)
{
- GSList *iter;
+ const GSList *iter;
char **strv;
- int len, i;
+ guint len, i;
- len = g_slist_length (slist);
- if (!len)
+ if (!slist)
return NULL;
+
+ len = g_slist_length ((GSList *) slist);
+
strv = g_new (char *, len + 1);
if (deep_copy) {
- for (i = 0, iter = slist; iter; iter = iter->next, i++)
+ for (i = 0, iter = slist; iter; iter = iter->next, i++) {
+ nm_assert (iter->data);
strv[i] = g_strdup (iter->data);
+ }
} else {
- for (i = 0, iter = slist; iter; iter = iter->next, i++)
+ for (i = 0, iter = slist; iter; iter = iter->next, i++) {
+ nm_assert (iter->data);
strv[i] = iter->data;
+ }
}
strv[i] = NULL;
@@ -1002,9 +1010,11 @@ GPtrArray *
_nm_utils_strv_to_ptrarray (char **strv)
{
GPtrArray *ptrarray;
- int i;
+ gsize i, l;
+
+ l = NM_PTRARRAY_LEN (strv);
- ptrarray = g_ptr_array_new_with_free_func (g_free);
+ ptrarray = g_ptr_array_new_full (l, g_free);
if (strv) {
for (i = 0; strv[i]; i++)
@@ -1015,10 +1025,10 @@ _nm_utils_strv_to_ptrarray (char **strv)
}
char **
-_nm_utils_ptrarray_to_strv (GPtrArray *ptrarray)
+_nm_utils_ptrarray_to_strv (const GPtrArray *ptrarray)
{
char **strv;
- int i;
+ guint i;
if (!ptrarray)
return g_new0 (char *, 1);
@@ -1032,6 +1042,8 @@ _nm_utils_ptrarray_to_strv (GPtrArray *ptrarray)
return strv;
}
+/*****************************************************************************/
+
static gboolean
device_supports_ap_ciphers (guint32 dev_caps,
guint32 ap_flags,