glib-aux: add assertions to nm_strvarray_*() helpers
This commit is contained in:
@@ -3121,10 +3121,14 @@ gboolean nm_utils_ifname_valid(const char *name, NMUtilsIfaceType type, GError *
|
||||
static inline GArray *
|
||||
nm_strvarray_ensure(GArray **p)
|
||||
{
|
||||
nm_assert(p);
|
||||
|
||||
if (!*p) {
|
||||
*p = g_array_new(TRUE, FALSE, sizeof(char *));
|
||||
g_array_set_clear_func(*p, nm_indirect_g_free);
|
||||
}
|
||||
} else
|
||||
nm_assert(g_array_get_element_size(*p) == sizeof(char *));
|
||||
|
||||
return *p;
|
||||
}
|
||||
|
||||
@@ -3133,6 +3137,9 @@ nm_strvarray_add(GArray *array, const char *str)
|
||||
{
|
||||
char *s;
|
||||
|
||||
nm_assert(array);
|
||||
nm_assert(g_array_get_element_size(array) == sizeof(char *));
|
||||
|
||||
s = g_strdup(str);
|
||||
g_array_append_val(array, s);
|
||||
}
|
||||
@@ -3140,15 +3147,14 @@ nm_strvarray_add(GArray *array, const char *str)
|
||||
static inline const char *
|
||||
nm_strvarray_get_idx(GArray *array, guint idx)
|
||||
{
|
||||
nm_assert(array);
|
||||
nm_assert(idx < array->len);
|
||||
|
||||
return g_array_index(array, const char *, idx);
|
||||
return *nm_g_array_index_p(array, const char *, idx);
|
||||
}
|
||||
|
||||
static inline const char *const *
|
||||
nm_strvarray_get_strv_non_empty(GArray *arr, guint *length)
|
||||
{
|
||||
nm_assert(!arr || g_array_get_element_size(arr) == sizeof(char *));
|
||||
|
||||
if (!arr || arr->len == 0) {
|
||||
NM_SET_OUT(length, 0);
|
||||
return NULL;
|
||||
@@ -3163,6 +3169,8 @@ nm_strvarray_get_strv_non_empty_dup(GArray *arr, guint *length)
|
||||
{
|
||||
const char *const *strv;
|
||||
|
||||
nm_assert(!arr || g_array_get_element_size(arr) == sizeof(char *));
|
||||
|
||||
if (!arr || arr->len == 0) {
|
||||
NM_SET_OUT(length, 0);
|
||||
return NULL;
|
||||
@@ -3181,6 +3189,8 @@ nm_strvarray_get_strv(GArray **arr, guint *length)
|
||||
return (const char *const *) arr;
|
||||
}
|
||||
|
||||
nm_assert(g_array_get_element_size(*arr) == sizeof(char *));
|
||||
|
||||
NM_SET_OUT(length, (*arr)->len);
|
||||
return &g_array_index(*arr, const char *, 0);
|
||||
}
|
||||
@@ -3192,6 +3202,8 @@ nm_strvarray_set_strv(GArray **array, const char *const *strv)
|
||||
|
||||
array_old = g_steal_pointer(array);
|
||||
|
||||
nm_assert(!array_old || g_array_get_element_size(array_old) == sizeof(char *));
|
||||
|
||||
if (!strv || !strv[0])
|
||||
return;
|
||||
|
||||
@@ -3208,6 +3220,7 @@ nm_strvarray_find_first(GArray *strv, const char *needle)
|
||||
nm_assert(needle);
|
||||
|
||||
if (strv) {
|
||||
nm_assert(g_array_get_element_size(strv) == sizeof(char *));
|
||||
for (i = 0; i < strv->len; i++) {
|
||||
if (nm_streq(needle, g_array_index(strv, const char *, i)))
|
||||
return i;
|
||||
|
Reference in New Issue
Block a user