Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch bug-5d991b822e Excluding Merge-Ins
This is equivalent to a diff from 35639ec2 to c69b1cc4
2019-05-15
| ||
19:33 | Revised bug fix for [5d991b822e]. check-in: afbac00c user: dgp tags: core-8-6-branch | |
18:05 | Tests and fix for similar issues in [menu]. Closed-Leaf check-in: c69b1cc4 user: dgp tags: bug-5d991b822e | |
17:30 | Tests and fix for [scale ... -variable]. check-in: c1dd2ab0 user: dgp tags: bug-5d991b822e | |
2019-05-11
| ||
20:36 | Tests for Ticket [5d991b822e]. check-in: b548ba43 user: dgp tags: bug-5d991b822e | |
2018-02-04
| ||
17:34 | Fix [5d991b822e]: segmentation violation in TclObjLookupVarEx. Patch from Christian Werner. check-in: dfa30ff0 user: fvogel tags: core-8-6-branch | |
2018-02-03
| ||
15:07 | Fix [9d27218f76]: ttk::spinbox doc page mentions current, but it is not a valid command check-in: 8fee9a22 user: fvogel tags: trunk | |
15:07 | Fix [9d27218f76]: ttk::spinbox doc page mentions current, but it is not a valid command check-in: 35639ec2 user: fvogel tags: core-8-6-branch | |
2018-01-28
| ||
21:57 | Fix [e20d5ca7cd]: textTag-18.1 fails on OS X check-in: 745b4344 user: fvogel tags: core-8-6-branch | |
15:31 | Fix [9d27218f76]: ttk::spinbox doc page mentions current, but it is not a valid command Closed-Leaf check-in: c443e4ee user: fvogel tags: bug-9d27218f76 | |
Changes to generic/tkButton.c.
︙ | ︙ | |||
1613 1614 1615 1616 1617 1618 1619 | /* * If the variable is being unset, then just re-establish the trace unless * the whole interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { butPtr->flags &= ~(SELECTED | TRISTATED); | > > | > > > > > > > > > > > > > > > > > > | 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 | /* * If the variable is being unset, then just re-establish the trace unless * the whole interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { butPtr->flags &= ~(SELECTED | TRISTATED); if (!Tcl_InterpDeleted(interp)) { ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, Tcl_GetString(butPtr->selVarNamePtr), TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ButtonVarProc, probe); if (probe == (ClientData)butPtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * selVarNamePtr, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ goto redisplay; } Tcl_TraceVar2(interp, Tcl_GetString(butPtr->selVarNamePtr), NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ButtonVarProc, clientData); } goto redisplay; } |
︙ | ︙ | |||
1705 1706 1707 1708 1709 1710 1711 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { | > | > > > > > > > > > > > > > > > > > > > > > > > > > > | 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { if (!Tcl_InterpDeleted(interp) && butPtr->textVarNamePtr != NULL) { /* * An unset trace on some variable brought us here, but is it * the variable we have stored in butPtr->textVarNamePtr ? */ ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, Tcl_GetString(butPtr->textVarNamePtr), TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ButtonTextVarProc, probe); if (probe == (ClientData)butPtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * textVarNamePtr, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former textvariable must be, and we should ignore it. */ return NULL; } Tcl_ObjSetVar2(interp, butPtr->textVarNamePtr, NULL, butPtr->textPtr, TCL_GLOBAL_ONLY); Tcl_TraceVar2(interp, Tcl_GetString(butPtr->textVarNamePtr), NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ButtonTextVarProc, clientData); } return NULL; |
︙ | ︙ |
Changes to generic/tkEntry.c.
︙ | ︙ | |||
3151 3152 3153 3154 3155 3156 3157 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { | > > | > > > > > > > > > > > > > > > > > > | | 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { if (!Tcl_InterpDeleted(interp) && entryPtr->textVarName) { ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, entryPtr->textVarName, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, EntryTextVarProc, probe); if (probe == (ClientData)entryPtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * textVarName, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ return NULL; } Tcl_SetVar2(interp, entryPtr->textVarName, NULL, entryPtr->string, TCL_GLOBAL_ONLY); Tcl_TraceVar2(interp, entryPtr->textVarName, NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, EntryTextVarProc, clientData); entryPtr->flags |= ENTRY_VAR_TRACED; } return NULL; } /* * Update the entry's text with the value of the variable, unless the * entry already has that value (this happens when the variable changes * value because we changed it because someone typed in the entry). |
︙ | ︙ |
Changes to generic/tkListbox.c.
︙ | ︙ | |||
3441 3442 3443 3444 3445 3446 3447 | Tcl_HashEntry *entry; /* * Bwah hahahaha! Puny mortal, you can't unset a -listvar'd variable! */ if (flags & TCL_TRACE_UNSETS) { | | > > > > > > > > > > > > > > > > > > > > > | 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 | Tcl_HashEntry *entry; /* * Bwah hahahaha! Puny mortal, you can't unset a -listvar'd variable! */ if (flags & TCL_TRACE_UNSETS) { if (!Tcl_InterpDeleted(interp) && listPtr->listVarName) { ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, listPtr->listVarName, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ListboxListVarProc, probe); if (probe == (ClientData)listPtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * listVarName, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ return NULL; } Tcl_SetVar2Ex(interp, listPtr->listVarName, NULL, listPtr->listObj, TCL_GLOBAL_ONLY); Tcl_TraceVar2(interp, listPtr->listVarName, NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ListboxListVarProc, clientData); return NULL; } |
︙ | ︙ |
Changes to generic/tkMenu.c.
︙ | ︙ | |||
2482 2483 2484 2485 2486 2487 2488 | int flags) /* Describes what just happened. */ { TkMenuEntry *mePtr = clientData; TkMenu *menuPtr; const char *value; const char *name, *onValue; | | | > > | > | | | > > | > > > > > > > > > > > > > | 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 | int flags) /* Describes what just happened. */ { TkMenuEntry *mePtr = clientData; TkMenu *menuPtr; const char *value; const char *name, *onValue; if (Tcl_InterpDeleted(interp) || (mePtr->namePtr == NULL)) { /* * Do nothing if the interpreter is going away or we have * no variable name. */ return NULL; } menuPtr = mePtr->menuPtr; if (menuPtr->menuFlags & MENU_DELETION_PENDING) { return NULL; } name = Tcl_GetString(mePtr->namePtr); /* * If the variable is being unset, then re-establish the trace. */ if (flags & TCL_TRACE_UNSETS) { ClientData probe = NULL; mePtr->entryFlags &= ~ENTRY_SELECTED; do { probe = Tcl_VarTraceInfo(interp, name, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MenuVarProc, probe); if (probe == (ClientData)mePtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * namePtr, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ return NULL; } Tcl_TraceVar2(interp, name, NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MenuVarProc, clientData); TkpConfigureMenuEntry(mePtr); TkEventuallyRedrawMenu(menuPtr, NULL); return NULL; } /* * Use the value of the variable to update the selected status of the menu |
︙ | ︙ |
Changes to generic/tkMenubutton.c.
︙ | ︙ | |||
883 884 885 886 887 888 889 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { | > > | > > > > > > > > > > > > > > > > > > | 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { if (!Tcl_InterpDeleted(interp) && mbPtr->textVarName) { ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, mbPtr->textVarName, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MenuButtonTextVarProc, probe); if (probe == (ClientData)mbPtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * textVarName, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ return NULL; } Tcl_SetVar2(interp, mbPtr->textVarName, NULL, mbPtr->text, TCL_GLOBAL_ONLY); Tcl_TraceVar2(interp, mbPtr->textVarName, NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MenuButtonTextVarProc, clientData); } return NULL; |
︙ | ︙ |
Changes to generic/tkMessage.c.
︙ | ︙ | |||
840 841 842 843 844 845 846 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { | > > | > > > > > > > > > > > > > > > > > > | 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { if (!Tcl_InterpDeleted(interp) && msgPtr->textVarName) { ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, msgPtr->textVarName, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MessageTextVarProc, probe); if (probe == (ClientData)msgPtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * textVarName, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ return NULL; } Tcl_SetVar2(interp, msgPtr->textVarName, NULL, msgPtr->string, TCL_GLOBAL_ONLY); Tcl_TraceVar2(interp, msgPtr->textVarName, NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, MessageTextVarProc, clientData); } return NULL; |
︙ | ︙ |
Changes to generic/tkScale.c.
︙ | ︙ | |||
1194 1195 1196 1197 1198 1199 1200 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { | > > | > > > > > > > > > > > > > > > > > > | 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 | /* * If the variable is unset, then immediately recreate it unless the whole * interpreter is going away. */ if (flags & TCL_TRACE_UNSETS) { if (!Tcl_InterpDeleted(interp) && scalePtr->varNamePtr) { ClientData probe = NULL; do { probe = Tcl_VarTraceInfo(interp, Tcl_GetString(scalePtr->varNamePtr), TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ScaleVarProc, probe); if (probe == (ClientData)scalePtr) { break; } } while (probe); if (probe) { /* * We were able to fetch the unset trace for our * varNamePtr, which means it is not unset and not * the cause of this unset trace. Instead some outdated * former variable must be, and we should ignore it. */ return NULL; } Tcl_TraceVar2(interp, Tcl_GetString(scalePtr->varNamePtr), NULL, TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, ScaleVarProc, clientData); scalePtr->flags |= NEVER_SET; TkScaleSetValue(scalePtr, scalePtr->value, 1, 0); } return NULL; |
︙ | ︙ |
Changes to tests/button.test.
︙ | ︙ | |||
3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 | focus -force .top.b update event generate .top.b <space> update ; # shall not trigger error invalid command name ".top.b" } -cleanup { destroy .top.b .top } -result {} imageFinish cleanupTests return # Local variables: # mode: tcl | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 | focus -force .top.b update event generate .top.b <space> update ; # shall not trigger error invalid command name ".top.b" } -cleanup { destroy .top.b .top } -result {} test button-15.1 {Bug [5d991b822e]} { # Want this not to segfault set var INIT button .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b } {} test button-15.2 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT button .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable new }}} pack .b bind .b <Configure> {unset -nocomplain var} update destroy .b unset new } {} test button-15.3 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT checkbutton .b -variable var trace add variable var unset {apply {args { .b configure -variable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b } {} imageFinish cleanupTests return # Local variables: # mode: tcl |
︙ | ︙ |
Changes to tests/entry.test.
︙ | ︙ | |||
3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 | destroy .e } -body { catch {entry .e -textvariable thisnsdoesntexist::myvar} result1 set result1 } -cleanup { destroy .e } -result {can't trace "thisnsdoesntexist::myvar": parent namespace doesn't exist} # Gathered comments about lacks # XXX Still need to write tests for EntryBlinkProc, EntryFocusProc, # and EntryTextVarProc. # No tests for DisplayEntry. # XXX Still need to write tests for EntryScanTo and EntrySelectTo. # No tests for EventuallyRedraw | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 | destroy .e } -body { catch {entry .e -textvariable thisnsdoesntexist::myvar} result1 set result1 } -cleanup { destroy .e } -result {can't trace "thisnsdoesntexist::myvar": parent namespace doesn't exist} test entry-25.1 {Bug [5d991b822e]} { # Want this not to segfault, or write to variable with empty name set var INIT entry .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b info exists {} } 0 test entry-25.2 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT entry .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable new }}} pack .b bind .b <Configure> {unset -nocomplain var} update destroy .b unset new } {} # Gathered comments about lacks # XXX Still need to write tests for EntryBlinkProc, EntryFocusProc, # and EntryTextVarProc. # No tests for DisplayEntry. # XXX Still need to write tests for EntryScanTo and EntrySelectTo. # No tests for EventuallyRedraw |
︙ | ︙ |
Changes to tests/listbox.test.
︙ | ︙ | |||
3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 | event generate .l <1> -x 5 -y 5 ; # <<ListboxSelect>> fires selection clear ; # <<ListboxSelect>> fires again update set res } -cleanup { destroy .l } -result {{.l 0} {{} {}}} resetGridInfo deleteWindows option clear # cleanup cleanupTests | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 | event generate .l <1> -x 5 -y 5 ; # <<ListboxSelect>> fires selection clear ; # <<ListboxSelect>> fires again update set res } -cleanup { destroy .l } -result {{.l 0} {{} {}}} test listbox-32.1 {Bug [5d991b822e]} { # Want this not to segfault, or write to variable with empty name set var INIT listbox .b -listvariable var trace add variable var unset {apply {args { .b configure -listvariable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b info exists {} } 0 test listbox-32.2 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT listbox .b -listvariable var trace add variable var unset {apply {args { .b configure -listvariable new }}} pack .b bind .b <Configure> {unset -nocomplain var} update destroy .b unset new } {} resetGridInfo deleteWindows option clear # cleanup cleanupTests |
︙ | ︙ |
Changes to tests/menu.test.
︙ | ︙ | |||
3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 | menu .m1 set foo "hello" list [.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye] \ [set foo "goodbye"] [unset foo] } -cleanup { deleteWindows } -result {{} goodbye {}} test menu-18.1 {TkActivateMenuEntry} -setup { deleteWindows } -body { menu .m1 .m1 add command -label "test" | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 | menu .m1 set foo "hello" list [.m1 add checkbutton -variable foo -onvalue hello -offvalue goodbye] \ [set foo "goodbye"] [unset foo] } -cleanup { deleteWindows } -result {{} goodbye {}} test menu-17.6 {MenuVarProc [5d991b822e]} -setup { deleteWindows } -body { # Want this not to crash menu .b set var INIT .b add checkbutton -variable var trace add variable var unset {apply {args { .b entryconfigure 1 -variable {} }}} unset var } -cleanup { deleteWindows } -result {} test menu-17.7 {MenuVarProc [5d991b822e]} -setup { deleteWindows } -body { # Want this not to duplicate traces menu .b set var INIT .b add checkbutton -variable var trace add variable var unset {apply {args { .b entryconfigure 1 -variable new }}} unset var } -cleanup { deleteWindows } -result {} test menu-18.1 {TkActivateMenuEntry} -setup { deleteWindows } -body { menu .m1 .m1 add command -label "test" |
︙ | ︙ |
Changes to tests/menubut.test.
︙ | ︙ | |||
742 743 744 745 746 747 748 749 750 751 752 753 754 755 | menubutton .mb interp hide {} .mb destroy .mb set res1 [list [winfo children .] [interp hidden]] set res2 [list {} $l] expr {$res1 eq $res2} } -result 1 deleteWindows option clear imageFinish | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 | menubutton .mb interp hide {} .mb destroy .mb set res1 [list [winfo children .] [interp hidden]] set res2 [list {} $l] expr {$res1 eq $res2} } -result 1 test menubutton-9.1 {Bug [5d991b822e]} { # Want this not to segfault, or write to variable with empty name set var INIT menubutton .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b info exists {} } 0 test menubutton-9.2 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT menubutton .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable new }}} pack .b bind .b <Configure> {unset -nocomplain var} update destroy .b unset new } {} deleteWindows option clear imageFinish |
︙ | ︙ |
Changes to tests/message.test.
︙ | ︙ | |||
465 466 467 468 469 470 471 472 473 474 | } -body { .m configure -bd 4 .m configure -bg #ffffff lindex [.m configure -bd] 4 } -cleanup { destroy .m } -result {4} cleanupTests return | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 | } -body { .m configure -bd 4 .m configure -bg #ffffff lindex [.m configure -bd] 4 } -cleanup { destroy .m } -result {4} test message-4.1 {Bug [5d991b822e]} { # Want this not to segfault, or write to variable with empty name set var INIT message .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b info exists {} } 0 test message-4.2 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT message .b -textvariable var trace add variable var unset {apply {args { .b configure -textvariable new }}} pack .b bind .b <Configure> {unset -nocomplain var} update destroy .b unset new } {} cleanupTests return |
Changes to tests/scale.test.
︙ | ︙ | |||
1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 | } -body { pack [scale .s] # non-regression test for bug [55b95f578a] - shall just not crash .s configure -from -6.8e99 -to 8.8e99 } -cleanup { destroy .s } -result {} option clear # cleanup cleanupTests return | > > > > > > > > > > > > > > > > > > > > > > > > > > | 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 | } -body { pack [scale .s] # non-regression test for bug [55b95f578a] - shall just not crash .s configure -from -6.8e99 -to 8.8e99 } -cleanup { destroy .s } -result {} test scale-22.1 {Bug [5d991b822e]} { # Want this not to crash set var INIT scale .b -variable var trace add variable var unset {apply {args { .b configure -variable {} }}} pack .b bind .b <Configure> {unset var} update destroy .b } {} test scale-22.2 {Bug [5d991b822e]} { # Want this not to leak traces set var INIT scale .b -variable var trace add variable var unset {apply {args { .b configure -variable new }}} pack .b bind .b <Configure> {unset -nocomplain var} update destroy .b unset new } {} option clear # cleanup cleanupTests return |