summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--generic/tkListbox.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5514506..223f401 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2003-11-11 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tkListbox.c (ListboxDeleteSubCmd, ListboxListVarProc):
+ free itemconfig data when removing it from table. [Bug #836483]
+
* macosx/tkMacOSXClipboard.c (TkSuspendClipboard, TkSelGetSelection):
add unicode clipboard support. [Patch #840107] (senn)
diff --git a/generic/tkListbox.c b/generic/tkListbox.c
index 6403a71..d40a45a 100644
--- a/generic/tkListbox.c
+++ b/generic/tkListbox.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkListbox.c,v 1.30 2003/08/27 15:47:41 dkf Exp $
+ * RCS: @(#) $Id: tkListbox.c,v 1.31 2003/11/11 19:42:05 hobbs Exp $
*/
#include "tkPort.h"
@@ -1402,8 +1402,7 @@ ListboxGetItemAttributes(interp, listPtr, index)
Tcl_HashEntry *entry;
ItemAttr *attrs;
- entry = Tcl_CreateHashEntry(listPtr->itemAttrTable, (char *)index,
- &new);
+ entry = Tcl_CreateHashEntry(listPtr->itemAttrTable, (char *)index, &new);
if (new) {
attrs = (ItemAttr *) ckalloc(sizeof(ItemAttr));
attrs->border = NULL;
@@ -2398,6 +2397,7 @@ ListboxDeleteSubCmd(listPtr, first, last)
entry = Tcl_FindHashEntry(listPtr->itemAttrTable, (char *)i);
if (entry != NULL) {
+ ckfree((char *)Tcl_GetHashValue(entry));
Tcl_DeleteHashEntry(entry);
}
@@ -3366,6 +3366,7 @@ ListboxListVarProc(clientData, interp, name1, name2, flags)
/* Clean up attributes */
entry = Tcl_FindHashEntry(listPtr->itemAttrTable, (char *)i);
if (entry != NULL) {
+ ckfree((char *)Tcl_GetHashValue(entry));
Tcl_DeleteHashEntry(entry);
}
}