summaryrefslogtreecommitdiff
path: root/src/ll.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ll.c')
-rw-r--r--src/ll.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/ll.c b/src/ll.c
index 9bb1441..285203d 100644
--- a/src/ll.c
+++ b/src/ll.c
@@ -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
201void * 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