diff options
author | dgp <dgp@users.sourceforge.net> | 2016-06-16 17:06:25 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2016-06-16 17:06:25 (GMT) |
commit | 624ec168ecde5fbdbe83e4e7c558805b408fabcc (patch) | |
tree | e3e15fd38cf337d8c764493b47867104a0f652b2 /generic | |
parent | acdd236f96616d9dd6707bc56fffacf95cb81b6a (diff) | |
download | tcl-624ec168ecde5fbdbe83e4e7c558805b408fabcc.zip tcl-624ec168ecde5fbdbe83e4e7c558805b408fabcc.tar.gz tcl-624ec168ecde5fbdbe83e4e7c558805b408fabcc.tar.bz2 |
[16828b3744] [vwait] *must* successfully undo its variable trace, or else
it risks corrupting memory. Namespace teardown complexities were giving
the traces an opportunity to survive. Added another (arguably better)
Tcl_UntraceVar() call to be sure we avoid this problem.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclEvent.c | 2 |
1 files changed, 2 insertions, 0 deletions
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; } |