summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-09-05 21:33:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-09-05 21:33:49 (GMT)
commit618c49af4d299c9f0d776e604a1c81dd186b3b2d (patch)
treefc7a3f45cef9a2370191f49217d52f8701daba92 /generic/tclExecute.c
parent87b0db4d91332f8bf1bd7a58e9a5fb73cc31d8ae (diff)
downloadtcl-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.c20
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);
}