summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclCompile.c1
-rw-r--r--generic/tclEvent.c2
-rw-r--r--tests/event.test9
3 files changed, 12 insertions, 0 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index 31e69ad..eeee1b0 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -2602,6 +2602,7 @@ EnterCmdWordData(
TclAdvanceLines (&wordLine, last, tokenPtr->start);
TclAdvanceContinuations (&wordLine, &wordNext,
tokenPtr->start - envPtr->source);
+ /* See Ticket 4b61afd660 */
wwlines[wordIdx] =
((wordIdx == 0) || TclWordKnownAtCompileTime(tokenPtr, NULL))
? wordLine : -1;
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index c664b38..4db524c 100644
--- a/generic/tclEvent.c
+++ b/generic/tclEvent.c
@@ -1379,6 +1379,8 @@ VwaitVarProc(
int *donePtr = (int *) clientData;
*donePtr = 1;
+ Tcl_UntraceVar(interp, name1, TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
+ VwaitVarProc, clientData);
return NULL;
}
diff --git a/tests/event.test b/tests/event.test
index a7122f9..4996b97 100644
--- a/tests/event.test
+++ b/tests/event.test
@@ -559,6 +559,15 @@ test event-11.6 {Tcl_VwaitCmd procedure: round robin scheduling, same source} {
removeFile $test2file
list $x $y $z
} {3 3 done}
+test event-11.7 {Bug 16828b3744} {
+ after idle {
+ set ::t::v 1
+ namespace delete ::t
+ }
+ namespace eval ::t {
+ vwait ::t::v
+ }
+} {}
test event-12.1 {Tcl_UpdateCmd procedure} {