sue@kossy.jhuapl.edu (Sue Borchardt) (11/14/90)
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. Also... I thought that bringing everything up to patch level 18 would fix my _XtGetPerWidgetInput core dump problem but I have reports that it's still going on in my application. Any ideas? XtRemoveTimeOut(id = 171300), line 411 in "/X/R4/mit/lib/Xt/NextEvent.c" XwArrowReleaseCallback(aw = 0x1f2470, closure = (nil), call_data = (nil)), line 10 83 in "/X/R4/contrib/widgets/Xhp/Xw/ScrollBar.c" _XtCallCallbacks() at 0x693f8 XtCallCallbacks() at 0x695e8 `Arrow`Release(aw = 0x1f2470, event = 0xf7fffa00), line 534 in "/X/R4/contrib/widg ets/Xhp/Xw/Arrow.c" _XtTranslateEvent() at 0x889f0 DispatchEvent() at 0x716dc DecideToDispatch() at 0x71ddc XtDispatchEvent() at 0x71e90 AppMainLoop(app = 0x141258), line 577 in "arg.c" mainloop(), line 566 in "arg.c" main(argc = 1, argv = 0xf7fffba4), line 548 in "arg.c" Sue Borchardt sue@aplvax.jhuapl.edu JohnsHopkinsUniversityAppliedPhysicsLaboratory Johns Hopkins Rd. Laurel, Maryland, 20707 301-953-6814
etaylor@wilkins.iaims.bcm.tmc.edu (Eric Taylor) (11/16/90)
We had this happen too and were able to conclude that it was the fault of Xw. They were not completely correct in handling TimeOuts correctly. i.e. They either removed the IntervalId twice or they forgot to remove it when the widget was destroyed. I can't remember which. I use the XtAddTimeOut and RemoveTimeOut with no problems. -- Eric Taylor Baylor College of Medicine etaylor@wilkins.bmc.tmc.edu (713) 798-3776
rick@ut-emx.uucp (Rick Watson) (11/21/90)
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 */