diff options
author | Steve Bennett <steveb@workware.net.au> | 2023-06-29 14:15:07 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2025-07-16 09:34:08 +1000 |
commit | 4cea1cdea06a9ff18f485a54c65c804903da63b9 (patch) | |
tree | 8c0aeb060228d5068d52fd9d8fee824f17805e05 /jim.h | |
parent | e5faa1eb5d11ca5c26ee3f28f5377a1dbdaad23e (diff) | |
download | jimtcl-4cea1cdea06a9ff18f485a54c65c804903da63b9.zip jimtcl-4cea1cdea06a9ff18f485a54c65c804903da63b9.tar.gz jimtcl-4cea1cdea06a9ff18f485a54c65c804903da63b9.tar.bz2 |
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 <steveb@workware.net.au>
Diffstat (limited to 'jim.h')
-rw-r--r-- | jim.h | 10 |
1 files changed, 4 insertions, 6 deletions
@@ -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, |