diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-09-05 21:33:49 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-09-05 21:33:49 (GMT) |
commit | 618c49af4d299c9f0d776e604a1c81dd186b3b2d (patch) | |
tree | fc7a3f45cef9a2370191f49217d52f8701daba92 /generic/tclExecute.c | |
parent | 87b0db4d91332f8bf1bd7a58e9a5fb73cc31d8ae (diff) | |
download | tcl-618c49af4d299c9f0d776e604a1c81dd186b3b2d.zip tcl-618c49af4d299c9f0d776e604a1c81dd186b3b2d.tar.gz tcl-618c49af4d299c9f0d776e604a1c81dd186b3b2d.tar.bz2 |
Backout [c1a376375e0e6488]: imported namespace ensemble command name distorted during deletion trace on the import.
According to Travis, there's a memory leak which needs to be fixed first.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 786fffb..0f1c2cc 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -4464,7 +4464,7 @@ TEBCresume( CoroutineData *corPtr = iPtr->execEnvPtr->corPtr; TclNewObj(objResultPtr); - if (corPtr && !(corPtr->cmdPtr->flags & CMD_DYING)) { + if (corPtr && !(corPtr->cmdPtr->flags & CMD_IS_DELETED)) { Tcl_GetCommandFullName(interp, (Tcl_Command) corPtr->cmdPtr, objResultPtr); } @@ -4524,18 +4524,6 @@ TEBCresume( TRACE(("\"%.30s\" => ", O2S(OBJ_AT_TOS))); cmd = Tcl_GetCommandFromObj(interp, OBJ_AT_TOS); if (cmd == NULL) { - goto instOriginError; - } - origCmd = TclGetOriginalCommand(cmd); - if (origCmd == NULL) { - origCmd = cmd; - } - - TclNewObj(objResultPtr); - Tcl_GetCommandFullName(interp, origCmd, objResultPtr); - if (TclCheckEmptyString(objResultPtr) == TCL_EMPTYSTRING_YES ) { - Tcl_DecrRefCount(objResultPtr); - instOriginError: Tcl_SetObjResult(interp, Tcl_ObjPrintf( "invalid command name \"%s\"", TclGetString(OBJ_AT_TOS))); DECACHE_STACK_INFO(); @@ -4545,6 +4533,12 @@ TEBCresume( TRACE_APPEND(("ERROR: not command\n")); goto gotError; } + origCmd = TclGetOriginalCommand(cmd); + if (origCmd == NULL) { + origCmd = cmd; + } + TclNewObj(objResultPtr); + Tcl_GetCommandFullName(interp, origCmd, objResultPtr); TRACE_APPEND(("\"%.30s\"", O2S(OBJ_AT_TOS))); NEXT_INST_F(1, 1, 1); } |