Initial upload
This commit is contained in:
33
ptr_stack.c
Normal file
33
ptr_stack.c
Normal file
@@ -0,0 +1,33 @@
|
||||
/* vim: set filetype=c: */
|
||||
|
||||
#include "ptr_stack.h"
|
||||
|
||||
#include <malloc.h>
|
||||
|
||||
void PtrStack_init(PtrStack* obj) {
|
||||
obj->top = NULL;
|
||||
obj->size = 0;
|
||||
}
|
||||
|
||||
void PtrStack_push(PtrStack* obj, void* ptr) {
|
||||
PtrStackItem* itm = malloc(sizeof(PtrStackItem));
|
||||
itm->ptr = ptr;
|
||||
itm->prev = obj->top;
|
||||
obj->top = itm;
|
||||
obj->size++;
|
||||
}
|
||||
void PtrStack_pop(PtrStack* obj) {
|
||||
PtrStackItem* itm = obj->top;
|
||||
obj->top = itm->prev;
|
||||
free(itm);
|
||||
obj->size--;
|
||||
}
|
||||
|
||||
void PtrStack_uninit(PtrStack* obj) {
|
||||
PtrStackItem* curr = obj->top;
|
||||
while(curr != NULL) {
|
||||
PtrStackItem* prev = curr->prev;
|
||||
free(curr);
|
||||
curr = prev;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user