diff options
Diffstat (limited to 'src/ll.c')
| -rw-r--r-- | src/ll.c | 12 |
1 files changed, 12 insertions, 0 deletions
| @@ -196,4 +196,16 @@ int dlinkedlist_foreach(dlinkedlist *ll, int (*callback)(void*)) { | |||
| 196 | callback(p->data); | 196 | callback(p->data); |
| 197 | 197 | ||
| 198 | return 0; | 198 | return 0; |
| 199 | } | ||
| 200 | |||
| 201 | void * dlinkedlist_poplast(dlinkedlist *ll) { | ||
| 202 | if(!ll) | ||
| 203 | RETURNWERR(EINVAL, NULL); | ||
| 204 | if(dlinkedlist_isempty(ll)) | ||
| 205 | RETURNWERR(ENODATA, NULL); | ||
| 206 | |||
| 207 | void *data = dlinkedlist_get(ll, ll->size - 1); | ||
| 208 | dlinkedlist_remove(ll, ll->size - 1); | ||
| 209 | |||
| 210 | return data; | ||
| 199 | } \ No newline at end of file | 211 | } \ No newline at end of file |
