summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2007-06-10 23:15:05 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2007-06-10 23:15:05 (GMT)
commit57ba79b9aa406ba55b5987ac6bf3556cce00d9df (patch)
tree9e526ad2806f8efeac869fbd387fcf300f74d7ea /generic/tclExecute.c
parent78cbf63f6981c799426895c68d288d6ab57f0d01 (diff)
downloadtcl-57ba79b9aa406ba55b5987ac6bf3556cce00d9df.zip
tcl-57ba79b9aa406ba55b5987ac6bf3556cce00d9df.tar.gz
tcl-57ba79b9aa406ba55b5987ac6bf3556cce00d9df.tar.bz2
* generic/tclBasic.c: Further TEOvI split, creating a new
* generic/tclCompile.h: TclEvalObjvKnownCommand() function to * generic/tclExecute.c: handle commands that are already known and are not traced. INST_INVOKE now calls into this function instead of inlining parts of TEOvI. Same perf, better isolation.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index ea416f9..12f85bc 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclExecute.c,v 1.289 2007/06/10 20:39:40 hobbs Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.290 2007/06/10 23:15:06 msofer Exp $
*/
#include "tclInt.h"
@@ -1969,21 +1969,10 @@ TclExecuteByteCode(
&& (!checkInterp
|| (codePtr->compileEpoch == iPtr->compileEpoch))) {
/*
- * No traces, the interp is ok: avoid the call out to TEOVi
+ * No traces, the interp is ok: use the fast interface
*/
- cmdPtr->refCount++;
- iPtr->cmdCount++;
- iPtr->ensembleRewrite.sourceObjs = NULL;
- result = (*cmdPtr->objProc)(cmdPtr->objClientData, interp,
- objc, objv);
- TclCleanupCommandMacro(cmdPtr);
- if (Tcl_AsyncReady()) {
- result = Tcl_AsyncInvoke(interp, result);
- }
- if (result == TCL_OK && TclLimitReady(iPtr->limit)) {
- result = Tcl_LimitCheck(interp);
- }
+ result = TclEvalObjvKnownCommand(interp, objc, objv, cmdPtr);
} else {
/*
* If trace procedures will be called, we need a command