summaryrefslogtreecommitdiffstats
path: root/generic/tclOOBasic.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2024-01-27 22:09:37 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2024-01-27 22:09:37 (GMT)
commitb13d82a5dbe1709dad049d401028e6c889027f31 (patch)
treeab37fc2997247c91cba08cd4dbcf3012548efaec /generic/tclOOBasic.c
parent6469f49c68c8f3006fe38c70f1cc16621207873e (diff)
downloadtcl-b13d82a5dbe1709dad049d401028e6c889027f31.zip
tcl-b13d82a5dbe1709dad049d401028e6c889027f31.tar.gz
tcl-b13d82a5dbe1709dad049d401028e6c889027f31.tar.bz2
Change back memory management to how I wanted it to be
Diffstat (limited to 'generic/tclOOBasic.c')
-rw-r--r--generic/tclOOBasic.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/generic/tclOOBasic.c b/generic/tclOOBasic.c
index 0e642ef..4553e50 100644
--- a/generic/tclOOBasic.c
+++ b/generic/tclOOBasic.c
@@ -1456,7 +1456,7 @@ GetPropertyName(
if (cachePtr && *cachePtr) {
tablePtr = *cachePtr;
} else {
- tablePtr = (struct Cache *) Tcl_Alloc(
+ tablePtr = (struct Cache *) TclStackAlloc(interp,
offsetof(struct Cache, names) + sizeof(char *) * (objc + 1));
for (i = 0; i < objc; i++) {
@@ -1500,7 +1500,7 @@ GetPropertyName(
}
}
if (!cachePtr) {
- Tcl_Free(tablePtr);
+ TclStackFree(interp, tablePtr);
}
if (result != TCL_OK) {
return NULL;
@@ -1511,6 +1511,7 @@ GetPropertyName(
/* Release the cache made by GetPropertyName(). */
static void
ReleasePropertyNameCache(
+ Tcl_Interp *interp,
struct Cache **cachePtr)
{
if (*cachePtr) {
@@ -1518,7 +1519,7 @@ ReleasePropertyNameCache(
if (tablePtr->listPtr) {
Tcl_DecrRefCount(tablePtr->listPtr);
}
- Tcl_Free(tablePtr);
+ TclStackFree(interp, tablePtr);
*cachePtr = NULL;
}
}
@@ -1624,7 +1625,7 @@ TclOO_Configurable_Configure(
if (code == TCL_OK) {
Tcl_ResetResult(interp);
}
- ReleasePropertyNameCache(&cache);
+ ReleasePropertyNameCache(interp, &cache);
return code;
}
}