diff options
| author | donal.k.fellows@manchester.ac.uk <dkf> | 2012-10-26 07:32:47 (GMT) |
|---|---|---|
| committer | donal.k.fellows@manchester.ac.uk <dkf> | 2012-10-26 07:32:47 (GMT) |
| commit | f9fde49e1eb834987018919cb86b5a2af5180b87 (patch) | |
| tree | adc7c064741a37afc892c059151bdb56e457191a /generic/tclExecute.c | |
| parent | 3119098a801650d1e321ecfa669a82249bf7e368 (diff) | |
| download | tcl-f9fde49e1eb834987018919cb86b5a2af5180b87.zip tcl-f9fde49e1eb834987018919cb86b5a2af5180b87.tar.gz tcl-f9fde49e1eb834987018919cb86b5a2af5180b87.tar.bz2 | |
Compile [namespace which -command]; big performance saving in some contexts.
Diffstat (limited to 'generic/tclExecute.c')
| -rw-r--r-- | generic/tclExecute.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 0ec16e9..a24c806 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -4107,6 +4107,16 @@ TEBCresume( TRACE_APPEND(("%.30s\n", O2S(objResultPtr))); NEXT_INST_F(1, 1, 1); } + case INST_RESOLVE_COMMAND: { + Tcl_Command cmd = Tcl_GetCommandFromObj(interp, OBJ_AT_TOS); + + TclNewObj(objResultPtr); + if (cmd != NULL) { + Tcl_GetCommandFullName(interp, cmd, objResultPtr); + } + TRACE_WITH_OBJ(("\"%.20s\" => ", O2S(OBJ_AT_TOS)), objResultPtr); + NEXT_INST_F(1, 1, 1); + } case INST_TCLOO_SELF: { CallFrame *framePtr = iPtr->varFramePtr; CallContext *contextPtr; |
