made create_element work for any list position
This commit is contained in:
parent
8495798d6b
commit
1cc70f1dc7
1 changed files with 9 additions and 6 deletions
15
src/list.c
15
src/list.c
|
@ -19,13 +19,16 @@ typedef struct {
|
|||
void *_FREEREF;
|
||||
|
||||
void *create_element(void **dest, int size) {
|
||||
void *e = malloc(size);
|
||||
List *e = malloc(size);
|
||||
List **d = (List **)dest;
|
||||
|
||||
((List *)e)->prev = NULL;
|
||||
((List *)e)->next = *dest;
|
||||
if(*dest != NULL)
|
||||
((List *)(*dest))->prev = e;
|
||||
*dest = e;
|
||||
e->prev = NULL;
|
||||
e->next = *d;
|
||||
if(*d != NULL) {
|
||||
e->prev = (*d)->prev;
|
||||
(*d)->prev = e;
|
||||
}
|
||||
*d = e;
|
||||
|
||||
return e;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue