forked from acouzens/open5gs
OpenAPI: Add functions OpenAPI_list_clear and OpenAPI_list_insert_prev
This commit is contained in:
parent
02054bea31
commit
dbd0e654c8
|
@ -29,8 +29,11 @@ typedef struct OpenAPI_list_s {
|
|||
|
||||
OpenAPI_list_t *OpenAPI_list_create(void);
|
||||
void OpenAPI_list_free(OpenAPI_list_t *listToFree);
|
||||
void OpenAPI_list_clear(OpenAPI_list_t *list);
|
||||
|
||||
void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList);
|
||||
void OpenAPI_list_insert_prev(
|
||||
OpenAPI_list_t *list, OpenAPI_lnode_t *lnode, void *dataToAddInList);
|
||||
OpenAPI_lnode_t *OpenAPI_list_find(OpenAPI_list_t *list, long indexOfElement);
|
||||
void OpenAPI_list_remove(
|
||||
OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove);
|
||||
|
|
|
@ -101,6 +101,16 @@ void OpenAPI_list_free(OpenAPI_list_t *list)
|
|||
}
|
||||
}
|
||||
|
||||
void OpenAPI_list_clear(OpenAPI_list_t *list)
|
||||
{
|
||||
if (list) {
|
||||
OpenAPI_list_iterate_forward(list, OpenAPI_lnode_free, NULL);
|
||||
list->first = NULL;
|
||||
list->last = NULL;
|
||||
list->count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList)
|
||||
{
|
||||
OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList);
|
||||
|
@ -128,6 +138,27 @@ void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList)
|
|||
list->count++;
|
||||
}
|
||||
|
||||
void OpenAPI_list_insert_prev(OpenAPI_list_t *list, OpenAPI_lnode_t *lnode,
|
||||
void *dataToAddInList)
|
||||
{
|
||||
OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList);
|
||||
if (newListEntry == NULL) {
|
||||
ogs_assert_if_reached();
|
||||
return;
|
||||
} else if (lnode->prev == NULL) {
|
||||
list->first = newListEntry;
|
||||
lnode->prev = newListEntry;
|
||||
newListEntry->prev = NULL;
|
||||
newListEntry->next = lnode;
|
||||
} else {
|
||||
lnode->prev->next = newListEntry;
|
||||
newListEntry->prev = lnode->prev;
|
||||
newListEntry->next = lnode;
|
||||
lnode->prev = newListEntry;
|
||||
}
|
||||
list->count++;
|
||||
}
|
||||
|
||||
void OpenAPI_list_remove(OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove)
|
||||
{
|
||||
OpenAPI_lnode_t *elementBeforeElementToRemove = elementToRemove->prev;
|
||||
|
|
|
@ -101,6 +101,16 @@ void OpenAPI_list_free(OpenAPI_list_t *list)
|
|||
}
|
||||
}
|
||||
|
||||
void OpenAPI_list_clear(OpenAPI_list_t *list)
|
||||
{
|
||||
if (list) {
|
||||
OpenAPI_list_iterate_forward(list, OpenAPI_lnode_free, NULL);
|
||||
list->first = NULL;
|
||||
list->last = NULL;
|
||||
list->count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList)
|
||||
{
|
||||
OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList);
|
||||
|
@ -128,6 +138,27 @@ void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList)
|
|||
list->count++;
|
||||
}
|
||||
|
||||
void OpenAPI_list_insert_prev(OpenAPI_list_t *list, OpenAPI_lnode_t *lnode,
|
||||
void *dataToAddInList)
|
||||
{
|
||||
OpenAPI_lnode_t *newListEntry = listEntry_create(dataToAddInList);
|
||||
if (newListEntry == NULL) {
|
||||
ogs_assert_if_reached();
|
||||
return;
|
||||
} else if (lnode->prev == NULL) {
|
||||
list->first = newListEntry;
|
||||
lnode->prev = newListEntry;
|
||||
newListEntry->prev = NULL;
|
||||
newListEntry->next = lnode;
|
||||
} else {
|
||||
lnode->prev->next = newListEntry;
|
||||
newListEntry->prev = lnode->prev;
|
||||
newListEntry->next = lnode;
|
||||
lnode->prev = newListEntry;
|
||||
}
|
||||
list->count++;
|
||||
}
|
||||
|
||||
void OpenAPI_list_remove(OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove)
|
||||
{
|
||||
OpenAPI_lnode_t *elementBeforeElementToRemove = elementToRemove->prev;
|
||||
|
|
|
@ -29,8 +29,11 @@ typedef struct OpenAPI_list_s {
|
|||
|
||||
OpenAPI_list_t *OpenAPI_list_create(void);
|
||||
void OpenAPI_list_free(OpenAPI_list_t *listToFree);
|
||||
void OpenAPI_list_clear(OpenAPI_list_t *list);
|
||||
|
||||
void OpenAPI_list_add(OpenAPI_list_t *list, void *dataToAddInList);
|
||||
void OpenAPI_list_insert_prev(
|
||||
OpenAPI_list_t *list, OpenAPI_lnode_t *lnode, void *dataToAddInList);
|
||||
OpenAPI_lnode_t *OpenAPI_list_find(OpenAPI_list_t *list, long indexOfElement);
|
||||
void OpenAPI_list_remove(
|
||||
OpenAPI_list_t *list, OpenAPI_lnode_t *elementToRemove);
|
||||
|
|
Loading…
Reference in New Issue