diff options
author | Thomas Haller <thaller@redhat.com> | 2023-10-26 13:33:44 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2023-11-15 17:59:25 +0100 |
commit | 73947cdfd011041b9d9a591ff77320620df2882f (patch) | |
tree | c4b010f2488950e18702c188bbbaf0f50226bf84 | |
parent | 7ab9a2b69f531f16d87771b65352eaa1fde827ae (diff) |
glib-aux: add nm_strvarray_clear() helper
-rw-r--r-- | src/libnm-glib-aux/nm-shared-utils.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h index 5c7ea95714..f27f6f7d73 100644 --- a/src/libnm-glib-aux/nm-shared-utils.h +++ b/src/libnm-glib-aux/nm-shared-utils.h @@ -3154,6 +3154,24 @@ _nm_strvarray_cmp_strv(const GArray *strv, const char *const *ss, gsize ss_len) #define nm_strvarray_equal_strv(strv, ss, ss_len) \ (nm_strvarray_cmp_strv((strv), (ss), (ss_len)) == 0) +static inline gboolean +nm_strvarray_clear(GArray **array) +{ + gboolean cleared = FALSE; + + nm_assert(array); + nm_assert(!*array || sizeof(char *) == g_array_get_element_size(*array)); + + if (*array) { + /* We always clear the GArray, but we return TRUE only if the + * array was non-empty before. */ + if ((*array)->len > 0) + cleared = TRUE; + nm_clear_pointer(array, g_array_unref); + } + return cleared; +} + /*****************************************************************************/ struct _NMVariantAttributeSpec { |