summaryrefslogtreecommitdiffstats
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)
commit67bcf9f38698bc89119e3790e9583ded6087fe34 (patch)
treeab37fc2997247c91cba08cd4dbcf3012548efaec
parentbdc4a8603dbdd158e1346b9a3700d27cbfa11423 (diff)
downloadtcl-67bcf9f38698bc89119e3790e9583ded6087fe34.zip
tcl-67bcf9f38698bc89119e3790e9583ded6087fe34.tar.gz
tcl-67bcf9f38698bc89119e3790e9583ded6087fe34.tar.bz2
Change back memory management to how I wanted it to be
-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;
}
}