From: <no...@so...> - 2001-10-04 22:32:20
|
Bugs item #468098, was opened at 2001-10-04 15:32 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=468098&group_id=10894 Category: 48. Portability Support Group: 8.3.3 Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Mo DeJong (mdejong) Summary: Tk_GetBitmapFromData broken Initial Comment: The now obsolete function Tk_GetBitmapFromData, if used, will corrupt the bitmap hashtable causing much grief later on... This problem appears to be present in 8.4 as well. To put your mind at ease, after fixing this bug in Tk, I then went into my code and removed Tk_GetBitmapFromData, replacing it with Tk_DefineBitmap. If you don't fix the bug, then remove the function altogether. Thanks, -Brian The following fixes the problem: $ cvs diff -p tkBitmap.c Index: tkBitmap.c =================================================================== RCS file: /cvsroot/tktoolkit/tk/generic/tkBitmap.c,v retrieving revision 1.7.12.1 diff -p -r1.7.12.1 tkBitmap.c *** tkBitmap.c 2001/04/04 07:57:16 1.7.12.1 --- tkBitmap.c 2001/10/04 22:15:41 *************** Tk_GetBitmapFromData(interp, tkwin, sour *** 818,825 **** char string[16 + TCL_INTEGER_SPACE]; char *name; TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr; ! BitmapInit(dispPtr); nameKey.source = source; nameKey.width = width; --- 818,829 ---- char string[16 + TCL_INTEGER_SPACE]; char *name; TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr; + ThreadSpecificData *tsdPtr = (ThreadSpecificData *) + Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData)); ! if (!tsdPtr->initialized) { ! BitmapInit(dispPtr); ! } nameKey.source = source; nameKey.width = width; ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=110894&aid=468098&group_id=10894 |