forked from Mirror/frr
lib: add one check in "list_sort()"
Add one check in `list_sort()`: Immediatly return if no any items in this list. Signed-off-by: anlan_cs <vic.lan@pica8.com>
This commit is contained in:
parent
026f28e8ca
commit
2f58dc31e8
|
@ -370,10 +370,15 @@ void list_sort(struct list *list, int (*cmp)(const void **, const void **))
|
||||||
int i = -1;
|
int i = -1;
|
||||||
void *data;
|
void *data;
|
||||||
size_t n = list->count;
|
size_t n = list->count;
|
||||||
void **items = XCALLOC(MTYPE_TMP, (sizeof(void *)) * n);
|
void **items;
|
||||||
int (*realcmp)(const void *, const void *) =
|
int (*realcmp)(const void *, const void *) =
|
||||||
(int (*)(const void *, const void *))cmp;
|
(int (*)(const void *, const void *))cmp;
|
||||||
|
|
||||||
|
if (!n)
|
||||||
|
return;
|
||||||
|
|
||||||
|
items = XCALLOC(MTYPE_TMP, (sizeof(void *)) * n);
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS(list, ln, nn, data)) {
|
for (ALL_LIST_ELEMENTS(list, ln, nn, data)) {
|
||||||
items[++i] = data;
|
items[++i] = data;
|
||||||
list_delete_node(list, ln);
|
list_delete_node(list, ln);
|
||||||
|
|
Loading…
Reference in a new issue