Tk Source Code

Check-in [e8c5b9dd]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:3607326 Stop segfault from [listbox .l -listvariable $array].
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: e8c5b9ddf885baaf2949b8e5db2b056d2ccdc645
User & Date: dgp 2013-03-11 18:39:23
Context
2013-03-13
15:48
Patch by Andrew Shadura, providing better support for three architectures they have in Debian. check-in: 7477ddea user: jan.nijtmans tags: trunk
2013-03-11
18:39
3607326 Stop segfault from [listbox .l -listvariable $array]. check-in: e8c5b9dd user: dgp tags: trunk
18:02
3607326 Stop segfault from [listbox .l -listvariable $array]. check-in: 645ca43c user: dgp tags: core-8-5-branch
2013-03-07
14:49
Eliminate all usage of functions Tcl_VarEval (deprecated) and Tcl_Eval (to the prefered Tcl_EvalEx). check-in: 0deef053 user: jan.nijtmans tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.






1
2
3
4
5
6
7





2013-02-28  Donal K. Fellows  <[email protected]>

	* unix/tkUnixKey.c (TkpGetKeySym): [Bug 3599312]: Put the
	initialization of the key mapping before the input method handling so
	that Alt key handling is correct on non-OSX Unix. Thanks to Colin
	McDonald for developing the fix.

>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
2013-03-11  Don Porter  <[email protected]>

	* generic/tkListbox.c:	[Bug 3607326] Stop segfault from
	* tests/listbox.test:	[listbox .l -listvariable $array].

2013-02-28  Donal K. Fellows  <[email protected]>

	* unix/tkUnixKey.c (TkpGetKeySym): [Bug 3599312]: Put the
	initialization of the key mapping before the input method handling so
	that Alt key handling is correct on non-OSX Unix. Thanks to Colin
	McDonald for developing the fix.

Changes to generic/tkListbox.c.

1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
	    int dummy;

	    if (listVarObj == NULL) {
		listVarObj = (oldListObj ? oldListObj : Tcl_NewObj());
		if (Tcl_SetVar2Ex(interp, listPtr->listVarName, NULL,
			listVarObj, TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG)
			== NULL) {
		    if (oldListObj == NULL) {
			Tcl_DecrRefCount(listVarObj);
		    }
		    continue;
		}
	    }

	    /*
	     * Make sure the object is a good list object.
	     */







<
<
<







1625
1626
1627
1628
1629
1630
1631



1632
1633
1634
1635
1636
1637
1638
	    int dummy;

	    if (listVarObj == NULL) {
		listVarObj = (oldListObj ? oldListObj : Tcl_NewObj());
		if (Tcl_SetVar2Ex(interp, listPtr->listVarName, NULL,
			listVarObj, TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG)
			== NULL) {



		    continue;
		}
	    }

	    /*
	     * Make sure the object is a good list object.
	     */

Changes to tests/listbox.test.

3053
3054
3055
3056
3057
3058
3059











3060
3061
3062
3063
3064
3065
3066
    # but selection cannot be changed (new behavior since 8.4)
    .l selection set 3
    lappend out [.l selection includes 2] [.l curselection]
} -cleanup {
    destroy .l
} -result {1 1 2}












resetGridInfo
deleteWindows
option clear

# cleanup
cleanupTests
return







>
>
>
>
>
>
>
>
>
>
>







3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
    # but selection cannot be changed (new behavior since 8.4)
    .l selection set 3
    lappend out [.l selection includes 2] [.l curselection]
} -cleanup {
    destroy .l
} -result {1 1 2}

test listbox-30.1 {Bug 3607326} -setup {
    destroy .l
    unset -nocomplain a
} -body {
    array set a {}
    listbox .l -listvariable a
} -cleanup {
    destroy .l
    unset -nocomplain a
} -result * -match glob -returnCodes error

resetGridInfo
deleteWindows
option clear

# cleanup
cleanupTests
return