Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!ut-emx!rick From: rick@ut-emx.uucp (Rick Watson) Newsgroups: comp.windows.x Subject: Re: core dump in XtRemoveTimeOut Message-ID: <40018@ut-emx.uucp> Date: 21 Nov 90 00:11:44 GMT References: <1990Nov13.202552.25425@aplcen.apl.jhu.edu> Organization: The University of Texas at Austin; Austin, Texas Lines: 94 In article <1990Nov13.202552.25425@aplcen.apl.jhu.edu>, sue@kossy.jhuapl.edu (Sue Borchardt) writes: > > I've been getting the following core dump on and off when > clicking on the Xw scrollbar arrow. I can't tell if it's an > Xw problem or an Xt problem. I'm running on a Sun4 with > patches 1-18. > The following very unofficial patch attempts to fix the scrollbar timer problem but also (for reasons I don't entirely remember) disables the timer entirely. You can try changing the "#ifdef notdef" to see if the other fixes work for you. No guarantees. Rick Watson The University of Texas Computation Center, 512/471-3241 internet: rick@digate.cc.utexas.edu bitnet: watson@utadnx uucp: ...!cs.utexas.edu!ut-emx!rick span: utspan::utadnx::watson *** ScrollBar.c.ORIG Thu Feb 23 02:05:08 1989 --- ScrollBar.c Tue Jun 5 17:57:40 1990 *************** *** 1053,1058 /* If the orgin was changed, set up the repeat timer and */ /* invoke the application supplied slider moved callbacks */ if (flag) { sbw -> scrollbar.timerProcessing = True; --- 1053,1059 ----- /* If the orgin was changed, set up the repeat timer and */ /* invoke the application supplied slider moved callbacks */ + #ifdef notdef /* timers are screwed, don't use them */ if (flag) { sbw -> scrollbar.timerProcessing = True; *************** *** 1063,1068 XtAddTimeOut ((unsigned long) sbw->scrollbar.initial_delay, (XtTimerCallbackProc) XwTimerEvent, (caddr_t) sbw); } } --- 1064,1072 ----- XtAddTimeOut ((unsigned long) sbw->scrollbar.initial_delay, (XtTimerCallbackProc) XwTimerEvent, (caddr_t) sbw); } + #else + XtCallCallbacks (sbw, XtNsliderMoved, (caddr_t) origin); + #endif } *************** *** 1081,1086 if (sbw -> scrollbar.timerProcessing) XtRemoveTimeOut (sbw -> scrollbar.timer); } --- 1085,1091 ----- if (sbw -> scrollbar.timerProcessing) XtRemoveTimeOut (sbw -> scrollbar.timer); + sbw -> scrollbar.timerProcessing = False; } *************** *** 1113,1118 XtRemoveTimeOut (sbw -> scrollbar.timer); } /* Get the current origin, extent, min, and max of the */ /* slider in the valuator */ --- 1118,1128 ----- XtRemoveTimeOut (sbw -> scrollbar.timer); } + + /* get out if we're no longer processing timers */ + + if (!sbw -> scrollbar.timerProcessing) + return; /* Get the current origin, extent, min, and max of the */ /* slider in the valuator */