diff options
author | dgp <dgp@users.sourceforge.net> | 2011-06-29 21:35:39 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-06-29 21:35:39 (GMT) |
commit | 597fa538d80c82d2abf3ca76cb39e58b1ff52d63 (patch) | |
tree | d44ae20eb6f3372d30c175b11bd0f97a94077f8c | |
parent | cc904f20270793365571c62161fd5f1d79f610bd (diff) | |
parent | 4fe1846f2ab9eb6dd9c8fb30c91b1e2fa747a4cd (diff) | |
download | tk-597fa538d80c82d2abf3ca76cb39e58b1ff52d63.zip tk-597fa538d80c82d2abf3ca76cb39e58b1ff52d63.tar.gz tk-597fa538d80c82d2abf3ca76cb39e58b1ff52d63.tar.bz2 |
3341056 Correct segfault due to flaw in the 2011-06-17 commit.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | generic/ttk/ttkTrace.c | 2 | ||||
-rw-r--r-- | tests/ttk/ttk.test | 19 |
3 files changed, 24 insertions, 2 deletions
@@ -1,3 +1,8 @@ +2011-06-29 Don Porter <dgp@users.sourceforge.net> + + * generic/ttk/ttkTrace.c: [Bug 3341056] Correct segfault due to flaw + * tests/ttk/ttk.test: in the 2011-06-17 commit. + 2011-06-19 Donal K. Fellows <dkf@users.sf.net> * doc/wm.n: Added documentation of the -type attribute that was diff --git a/generic/ttk/ttkTrace.c b/generic/ttk/ttkTrace.c index fe4745f..e6234b8 100644 --- a/generic/ttk/ttkTrace.c +++ b/generic/ttk/ttkTrace.c @@ -136,7 +136,7 @@ void Ttk_UntraceVariable(Ttk_TraceHandle *h) * with removing is present. */ while ((cd = Tcl_VarTraceInfo(h->interp, Tcl_GetString(h->varnameObj), - 0, VarTraceProc, cd)) != NULL) { + TCL_GLOBAL_ONLY, VarTraceProc, cd)) != NULL) { if (cd == (ClientData) h) { break; } diff --git a/tests/ttk/ttk.test b/tests/ttk/ttk.test index 1eec180..5a982b6 100644 --- a/tests/ttk/ttk.test +++ b/tests/ttk/ttk.test @@ -560,12 +560,29 @@ test ttk-15.1 {Bug 3062331} -setup { } -body { set Y {} ttk::button .b -textvariable Y - trace variable Y u "destroy .b" + trace variable Y u "destroy .b; #" unset Y } -cleanup { destroy .b } -result {} +test ttk-15.2 {Bug 3341056} -setup { + proc foo {} { + destroy .lf + ttk::labelframe .lf + ttk::checkbutton .lf.cb -text xxx + } +} -body { + ttk::button .b -text xxx -command foo + .b invoke + .b invoke + .lf.cb invoke + destroy .b +} -cleanup { + rename foo {} + destroy .lf +} -result {} + ## Test ensemble processing: # # (See also: SF#2021443) |