aboutsummaryrefslogtreecommitdiff
path: root/jim.h
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2023-06-29 14:15:07 +1000
committerSteve Bennett <steveb@workware.net.au>2025-07-16 09:34:08 +1000
commit4cea1cdea06a9ff18f485a54c65c804903da63b9 (patch)
tree8c0aeb060228d5068d52fd9d8fee824f17805e05 /jim.h
parente5faa1eb5d11ca5c26ee3f28f5377a1dbdaad23e (diff)
downloadjimtcl-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.h10
1 files changed, 4 insertions, 6 deletions
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,