Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!mailrus!uwm.edu!rpi!dali.cs.montana.edu!uakari.primate.wisc.edu!sdd.hp.com!usc!snorkelwacker!bloom-beacon!ATHENA.MIT.EDU!swick From: swick@ATHENA.MIT.EDU (Ralph Swick) Newsgroups: comp.windows.x Subject: Re: Infinite recursion bug in Xt Message-ID: <9008031607.AA00393@lyre.MIT.EDU> Date: 3 Aug 90 16:07:08 GMT References: <5043@hemuli.tik.vtt.fi> Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 42 Oops. how embarassing. Coffee must have been on-order that day. Here's the obvious patch, in case you can't wait for the next set of public fixes: *** /tmp/,RCSt1a03903 Fri Aug 3 11:15:51 1990 --- Intrinsic.c Fri Aug 3 11:14:41 1990 *************** *** 572,587 **** * Internal routine; must be called only after XtIsWidget returns false */ Widget _XtWindowedAncestor(object) ! Widget object; { for (object = XtParent(object); object && !XtIsWidget(object);) object = XtParent(object); if (object == NULL) { ! String params = XtName(object); Cardinal num_params = 1; ! XtAppErrorMsg(XtWidgetToApplicationContext(object), ! "noWidgetAncestor", "windowedAncestor", XtCXtToolkitError, "Object \"%s\" does not have windowed ancestor", ¶ms, &num_params); } --- 572,587 ---- * Internal routine; must be called only after XtIsWidget returns false */ Widget _XtWindowedAncestor(object) ! register Widget object; { + Widget obj = object; for (object = XtParent(object); object && !XtIsWidget(object);) object = XtParent(object); if (object == NULL) { ! String params = XtName(obj); Cardinal num_params = 1; ! XtErrorMsg("noWidgetAncestor", "windowedAncestor", XtCXtToolkitError, "Object \"%s\" does not have windowed ancestor", ¶ms, &num_params); }