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 *
|
static inline GArray *
|
||||||
nm_strvarray_ensure(GArray **p)
|
nm_strvarray_ensure(GArray **p)
|
||||||
{
|
{
|
||||||
|
nm_assert(p);
|
||||||
|
|
||||||
if (!*p) {
|
if (!*p) {
|
||||||
*p = g_array_new(TRUE, FALSE, sizeof(char *));
|
*p = g_array_new(TRUE, FALSE, sizeof(char *));
|
||||||
g_array_set_clear_func(*p, nm_indirect_g_free);
|
g_array_set_clear_func(*p, nm_indirect_g_free);
|
||||||
}
|
} else
|
||||||
|
nm_assert(g_array_get_element_size(*p) == sizeof(char *));
|
||||||
|
|
||||||
return *p;
|
return *p;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3133,6 +3137,9 @@ nm_strvarray_add(GArray *array, const char *str)
|
|||||||
{
|
{
|
||||||
char *s;
|
char *s;
|
||||||
|
|
||||||
|
nm_assert(array);
|
||||||
|
nm_assert(g_array_get_element_size(array) == sizeof(char *));
|
||||||
|
|
||||||
s = g_strdup(str);
|
s = g_strdup(str);
|
||||||
g_array_append_val(array, s);
|
g_array_append_val(array, s);
|
||||||
}
|
}
|
||||||
@@ -3140,15 +3147,14 @@ nm_strvarray_add(GArray *array, const char *str)
|
|||||||
static inline const char *
|
static inline const char *
|
||||||
nm_strvarray_get_idx(GArray *array, guint idx)
|
nm_strvarray_get_idx(GArray *array, guint idx)
|
||||||
{
|
{
|
||||||
nm_assert(array);
|
return *nm_g_array_index_p(array, const char *, idx);
|
||||||
nm_assert(idx < array->len);
|
|
||||||
|
|
||||||
return g_array_index(array, const char *, idx);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char *const *
|
static inline const char *const *
|
||||||
nm_strvarray_get_strv_non_empty(GArray *arr, guint *length)
|
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) {
|
if (!arr || arr->len == 0) {
|
||||||
NM_SET_OUT(length, 0);
|
NM_SET_OUT(length, 0);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -3163,6 +3169,8 @@ nm_strvarray_get_strv_non_empty_dup(GArray *arr, guint *length)
|
|||||||
{
|
{
|
||||||
const char *const *strv;
|
const char *const *strv;
|
||||||
|
|
||||||
|
nm_assert(!arr || g_array_get_element_size(arr) == sizeof(char *));
|
||||||
|
|
||||||
if (!arr || arr->len == 0) {
|
if (!arr || arr->len == 0) {
|
||||||
NM_SET_OUT(length, 0);
|
NM_SET_OUT(length, 0);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -3181,6 +3189,8 @@ nm_strvarray_get_strv(GArray **arr, guint *length)
|
|||||||
return (const char *const *) arr;
|
return (const char *const *) arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nm_assert(g_array_get_element_size(*arr) == sizeof(char *));
|
||||||
|
|
||||||
NM_SET_OUT(length, (*arr)->len);
|
NM_SET_OUT(length, (*arr)->len);
|
||||||
return &g_array_index(*arr, const char *, 0);
|
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);
|
array_old = g_steal_pointer(array);
|
||||||
|
|
||||||
|
nm_assert(!array_old || g_array_get_element_size(array_old) == sizeof(char *));
|
||||||
|
|
||||||
if (!strv || !strv[0])
|
if (!strv || !strv[0])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -3208,6 +3220,7 @@ nm_strvarray_find_first(GArray *strv, const char *needle)
|
|||||||
nm_assert(needle);
|
nm_assert(needle);
|
||||||
|
|
||||||
if (strv) {
|
if (strv) {
|
||||||
|
nm_assert(g_array_get_element_size(strv) == sizeof(char *));
|
||||||
for (i = 0; i < strv->len; i++) {
|
for (i = 0; i < strv->len; i++) {
|
||||||
if (nm_streq(needle, g_array_index(strv, const char *, i)))
|
if (nm_streq(needle, g_array_index(strv, const char *, i)))
|
||||||
return i;
|
return i;
|
||||||
|
Reference in New Issue
Block a user