diff options
author | Thomas Haller <thaller@redhat.com> | 2020-07-22 12:24:59 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-07-23 15:29:23 +0200 |
commit | 99296d4c6caee60065286210f1f5fb4d653861bd (patch) | |
tree | 717da6691ff0849d6ccf58af32f043a554d2e807 | |
parent | 7ae8100d7a6674c01414e50dbe27d1fb62b96d87 (diff) | |
download | NetworkManager-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.h | 27 |
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); |