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 | b13d82a5dbe1709dad049d401028e6c889027f31 (patch) | |
| tree | ab37fc2997247c91cba08cd4dbcf3012548efaec /generic/tclOOBasic.c | |
| parent | 6469f49c68c8f3006fe38c70f1cc16621207873e (diff) | |
| download | tcl-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.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; } } |
