diff options
| author | mig <mig> | 2011-03-27 22:43:42 (GMT) |
|---|---|---|
| committer | mig <mig> | 2011-03-27 22:43:42 (GMT) |
| commit | 9324f33a7635dd12239a994d6e4e6809e461b243 (patch) | |
| tree | 7c9f063599246198148dc2b0c3c2cff5e91d46ad /generic/tclBasic.c | |
| parent | 7d2217ef356dbe4b2c732d63876c600ee42732a4 (diff) | |
| download | tcl-9324f33a7635dd12239a994d6e4e6809e461b243.zip tcl-9324f33a7635dd12239a994d6e4e6809e461b243.tar.gz tcl-9324f33a7635dd12239a994d6e4e6809e461b243.tar.bz2 | |
* generic/tclBasic.c (TclNREvalObjEx): fix performance issue, notably apparent in tclbench's 'LIST lset foreach'. Many thanks to twylite for patiently researching the issue and explaining it to me: a missing Tcl_ResetObjResult that causes unwanted sharing of the current result Tcl_Obj.
Diffstat (limited to 'generic/tclBasic.c')
| -rw-r--r-- | generic/tclBasic.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 5f2b301..b34209b 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -6018,6 +6018,9 @@ TclNREvalObjEx( * iPtr->varFramePtr in case * TCL_EVAL_GLOBAL was set. */ + if (TclInterpReady(interp) != TCL_OK) { + return TCL_ERROR; + } if (flags & TCL_EVAL_GLOBAL) { savedVarFramePtr = iPtr->varFramePtr; iPtr->varFramePtr = iPtr->rootFramePtr; |
