summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-07-22 12:24:59 +0200
committerThomas Haller <thaller@redhat.com>2020-07-23 15:29:23 +0200
commit99296d4c6caee60065286210f1f5fb4d653861bd (patch)
tree717da6691ff0849d6ccf58af32f043a554d2e807
parent7ae8100d7a6674c01414e50dbe27d1fb62b96d87 (diff)
downloadNetworkManager-99296d4c6caee60065286210f1f5fb4d653861bd.tar.gz
shared: add nm_strv_ptrarray_ensure() and nm_strv_ptrarray_find_first() helpers
-rw-r--r--shared/nm-glib-aux/nm-shared-utils.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/shared/nm-glib-aux/nm-shared-utils.h b/shared/nm-glib-aux/nm-shared-utils.h
index 889b5f517a..1fbf01131a 100644
--- a/shared/nm-glib-aux/nm-shared-utils.h
+++ b/shared/nm-glib-aux/nm-shared-utils.h
@@ -1743,6 +1743,17 @@ GSource *nm_utils_g_main_context_create_integrate_source (GMainContext *internal
/*****************************************************************************/
+static inline GPtrArray *
+nm_strv_ptrarray_ensure (GPtrArray **p_arr)
+{
+ nm_assert (p_arr);
+
+ if (G_UNLIKELY (!*p_arr))
+ *p_arr = g_ptr_array_new_with_free_func (g_free);
+
+ return *p_arr;
+}
+
static inline void
nm_strv_ptrarray_add_string_take (GPtrArray *cmd,
char *str)
@@ -1781,6 +1792,22 @@ nm_strv_ptrarray_take_gstring (GPtrArray *cmd,
FALSE));
}
+static inline gssize
+nm_strv_ptrarray_find_first (const GPtrArray *strv,
+ const char *str)
+{
+ if (!strv)
+ return -1;
+ return nm_utils_strv_find_first ((char **) strv->pdata, strv->len, str);
+}
+
+static inline gboolean
+nm_strv_ptrarray_contains (const GPtrArray *strv,
+ const char *str)
+{
+ return nm_strv_ptrarray_find_first (strv, str) >= 0;
+}
+
/*****************************************************************************/
int nm_utils_getpagesize (void);