summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2007-06-20 18:46:05 (GMT)
committerdgp <dgp@users.sourceforge.net>2007-06-20 18:46:05 (GMT)
commit990150fd25c8206ca25d424fafbdfd2b81199d1f (patch)
tree3d231361d50bc42a020d3f65eefb68a5951da2ae /generic/tclBasic.c
parent03e71e94a6bfa74deaf5a629ba1b72353f17bfc7 (diff)
downloadtcl-990150fd25c8206ca25d424fafbdfd2b81199d1f.zip
tcl-990150fd25c8206ca25d424fafbdfd2b81199d1f.tar.gz
tcl-990150fd25c8206ca25d424fafbdfd2b81199d1f.tar.bz2
* generic/tclInt.decls: Revised the interfaces of the routines
* generic/tclExecute.c: TclStackAlloc and TclStackFree to make them easier for callers to use (or more precisely, harder to misuse). TclStackFree now takes a (void *) argument which is the pointer intended to be freed. TclStackFree will panic if that's not actually the memory the call will free. TSA/TSF also now tolerate receiving (interp == NULL), in which case they simply fall back to be calls to Tcl_Alloc/Tcl_Free. * generic/tclIntDecls.h: make genstubs * generic/tclBasic.c: Updated callers * generic/tclCmdAH.c: * generic/tclCmdIL.c: * generic/tclCompCmds.c: * generic/tclCompExpr.c: * generic/tclCompile.c: * generic/tclFCmd.c: * generic/tclFileName.c: * generic/tclIOCmd.c: * generic/tclIndexObj.c: * generic/tclInterp.c: * generic/tclNamesp.c: * generic/tclProc.c: * generic/tclTrace.c: * unix/tclUnixPipe.c:
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r--generic/tclBasic.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 7d82ed9..8b20630 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -13,7 +13,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclBasic.c,v 1.253 2007/06/18 21:27:24 dgp Exp $
+ * RCS: @(#) $Id: tclBasic.c,v 1.254 2007/06/20 18:46:07 dgp Exp $
*/
#include "tclInt.h"
@@ -2021,7 +2021,7 @@ TclInvokeStringCommand(
result = (*cmdPtr->proc)(cmdPtr->clientData, interp, objc, argv);
- TclStackFree(interp); /* argv */
+ TclStackFree(interp, argv);
return result;
}
@@ -2088,7 +2088,7 @@ TclInvokeObjectCommand(
objPtr = objv[i];
Tcl_DecrRefCount(objPtr);
}
- TclStackFree(interp); /* objv */
+ TclStackFree(interp, objv);
return result;
}
@@ -3556,7 +3556,7 @@ TclEvalObjvInternal(
for (i = 0; i < handlerObjc; ++i) {
Tcl_DecrRefCount(newObjv[i]);
}
- TclStackFree(interp);
+ TclStackFree(interp, newObjv);
if (savedNsPtr) {
varFramePtr->nsPtr = savedNsPtr;
}
@@ -4269,7 +4269,7 @@ TclEvalEx(
if (eeFramePtr->type == TCL_LOCATION_SOURCE) {
Tcl_DecrRefCount(eeFramePtr->data.eval.path);
}
- TclStackFree(interp); /* eeFramePtr */
+ TclStackFree(interp, eeFramePtr);
return code;
}
@@ -4511,7 +4511,7 @@ TclEvalObjEx(
ckfree((char *) eoFramePtr->line);
eoFramePtr->line = NULL;
eoFramePtr->nline = 0;
- TclStackFree(interp); /* eoFramePtr */
+ TclStackFree(interp, eoFramePtr);
goto done;
}
@@ -4606,7 +4606,7 @@ TclEvalObjEx(
result = Tcl_EvalEx(interp, script, numSrcBytes, flags);
}
- TclStackFree(interp); /* ctxPtr */
+ TclStackFree(interp, ctxPtr);
}
}
} else {