diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2024-01-27 22:09:37 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2024-01-27 22:09:37 (GMT) |
commit | 67bcf9f38698bc89119e3790e9583ded6087fe34 (patch) | |
tree | ab37fc2997247c91cba08cd4dbcf3012548efaec | |
parent | bdc4a8603dbdd158e1346b9a3700d27cbfa11423 (diff) | |
download | tcl-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.c | 9 |
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; } } |