diff options
author | dgp <dgp@users.sourceforge.net> | 2013-02-22 17:38:16 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-02-22 17:38:16 (GMT) |
commit | 5752e55c3fe28ff4844c8bdae2aca996c3abcb12 (patch) | |
tree | a516e61da72173e93c5bcf790ff4767a3cf18a1e /generic/tclExecute.c | |
parent | 7c09879dbba02a4c3b86b6fbc4b9f1a05dba7b5b (diff) | |
parent | 6bd81a4dac7ec52c342aeb40e59ff6ea2387669a (diff) | |
download | tcl-5752e55c3fe28ff4844c8bdae2aca996c3abcb12.zip tcl-5752e55c3fe28ff4844c8bdae2aca996c3abcb12.tar.gz tcl-5752e55c3fe28ff4844c8bdae2aca996c3abcb12.tar.bz2 |
Shift more burden of smart cleanup onto the TclFreeCompileEnv() routine.
Stop crashes when the hookProc raises an error.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 19 |
1 files changed, 1 insertions, 18 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index c09b73e..1ae182c 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -724,11 +724,9 @@ Tcl_ExprObj(interp, objPtr, resultPtrPtr) register ByteCode *codePtr = NULL; /* Tcl Internal type of bytecode. * Initialized to avoid compiler warning. */ - AuxData *auxDataPtr; - LiteralEntry *entryPtr; Tcl_Obj *saveObjPtr; char *string; - int length, i, result; + int length, result; /* * First handle some common expressions specially. @@ -808,22 +806,7 @@ Tcl_ExprObj(interp, objPtr, resultPtrPtr) #ifdef TCL_COMPILE_DEBUG TclVerifyLocalLiteralTable(&compEnv); #endif /*TCL_COMPILE_DEBUG*/ - entryPtr = compEnv.literalArrayPtr; - for (i = 0; i < compEnv.literalArrayNext; i++) { - TclReleaseLiteral(interp, entryPtr->objPtr); - entryPtr++; - } -#ifdef TCL_COMPILE_DEBUG - TclVerifyGlobalLiteralTable(iPtr); -#endif /*TCL_COMPILE_DEBUG*/ - auxDataPtr = compEnv.auxDataArrayPtr; - for (i = 0; i < compEnv.auxDataArrayNext; i++) { - if (auxDataPtr->type->freeProc != NULL) { - auxDataPtr->type->freeProc(auxDataPtr->clientData); - } - auxDataPtr++; - } TclFreeCompileEnv(&compEnv); goto done; } |