diff options
author | dgp <dgp@users.sourceforge.net> | 2007-06-20 18:46:05 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2007-06-20 18:46:05 (GMT) |
commit | 990150fd25c8206ca25d424fafbdfd2b81199d1f (patch) | |
tree | 3d231361d50bc42a020d3f65eefb68a5951da2ae /generic/tclBasic.c | |
parent | 03e71e94a6bfa74deaf5a629ba1b72353f17bfc7 (diff) | |
download | tcl-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.c | 14 |
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 { |