From 4cea1cdea06a9ff18f485a54c65c804903da63b9 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Thu, 29 Jun 2023 14:15:07 +1000 Subject: core: improve the Jim_Stack API Now the optional free element function is passed on init and is automatically used to free elements on free. Naming is also now consistent as Jim_Stack* Signed-off-by: Steve Bennett --- jim.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'jim.h') diff --git a/jim.h b/jim.h index 083cb0f..8a0ae1e 100644 --- a/jim.h +++ b/jim.h @@ -183,6 +183,7 @@ typedef struct Jim_Stack { int len; int maxlen; void **vector; + void (*freefunc) (void *ptr); } Jim_Stack; /* ----------------------------------------------------------------------------- @@ -703,13 +704,10 @@ JIM_EXPORT void Jim_SetSourceInfo(Jim_Interp *interp, Jim_Obj *objPtr, /* stack */ -JIM_EXPORT void Jim_InitStack(Jim_Stack *stack); -JIM_EXPORT void Jim_FreeStack(Jim_Stack *stack); -JIM_EXPORT int Jim_StackLen(Jim_Stack *stack); +JIM_EXPORT void Jim_StackInit(Jim_Stack *stack, void (*freefunc) (void *ptr)); +JIM_EXPORT void Jim_StackFree(Jim_Stack *stack); JIM_EXPORT void Jim_StackPush(Jim_Stack *stack, void *element); -JIM_EXPORT void * Jim_StackPop(Jim_Stack *stack); -JIM_EXPORT void * Jim_StackPeek(Jim_Stack *stack); -JIM_EXPORT void Jim_FreeStackElements(Jim_Stack *stack, void (*freeFunc)(void *ptr)); +JIM_EXPORT void *Jim_StackPop(Jim_Stack *stack); /* hash table */ JIM_EXPORT int Jim_InitHashTable (Jim_HashTable *ht, -- cgit v1.1