I also added the sanity checks any place where it checked for
type == XmATTACH_WIDGET and then used FCP_Attat().w
This included around lines 1724 and 1733.
Also around lines 2293, 2460, 2637, and 2771, it spits out a
warning if you compile with LESSTIF_VERBOSE and set an
attachment to XmATTACH_WIDGET with a NULL widget.
Since this is supposed to be legal, the warning is unnecessary
even if compiled verbosely.
What really puzzled me is that the places where it checks and
gives a warning also changes the attachment type, which should
prevent the other cases from ever happening, but doesn't always.
-- Dave Williss
------
Meddle not in the affairs of dragons,
for you are crunchy and taste good with catsup
----- Original Message -----
From: "Danny Backx" <[EMAIL PROTECTED]>
To: "Dave Williss" <[EMAIL PROTECTED]>
Cc: "LessTif Mailing List" <[EMAIL PROTECTED]>
Sent: Monday, May 03, 2004 1:48 PM
Subject: Re: [Lesstif] Building on MacOS X
> I'm a bit puzzled. All the cases I found, including the
> one I mailed yesterday, are below. Do you have others ?
>
> Thanks,
>
> Danny
>
> ***************
> *** 1481,1487 ****
> if (FCP_Atta(con, TOP).type == XmATTACH_SELF) {
> p.request_mode |= CWY;
> } else if (FCP_Atta(con, TOP).type == XmATTACH_WIDGET &&
> ! !XtIsManaged(FCP_Atta(con, TOP).w)) {
> /* Danny experimental bug #531123 */
> SETY(XtY(FCP_Atta(con, TOP).w));
> DEBUGOUT(_LtDebug2(__FILE__, f, child, "Yow(%s) %d\n",
> --- 1481,1487 ----
> if (FCP_Atta(con, TOP).type == XmATTACH_SELF) {
> p.request_mode |= CWY;
> } else if (FCP_Atta(con, TOP).type == XmATTACH_WIDGET &&
> ! FCP_Atta(con, TOP).w && !XtIsManaged(FCP_Atta(con,
> TOP).w)) {
> /* Danny experimental bug #531123 */
> SETY(XtY(FCP_Atta(con, TOP).w));
> DEBUGOUT(_LtDebug2(__FILE__, f, child, "Yow(%s) %d\n",
> ***************
> *** 1721,1727 ****
> if (FCP_Atta(con1, dir).type != XmATTACH_NONE)
> {
> x += _XmGetOffset(FCP_Atta(con, dir).w, dir);
> ! if (FCP_Atta(con1, dir).type == XmATTACH_WIDGET)
> {
> x += XmFormPath(f, FCP_Atta(con1, dir).w, dir,
> atta);
> }
> --- 1721,1727 ----
> if (FCP_Atta(con1, dir).type != XmATTACH_NONE)
> {
> x += _XmGetOffset(FCP_Atta(con, dir).w, dir);
> ! if (FCP_Atta(con1, dir).type == XmATTACH_WIDGET &&
> FCP_Atta(con1, dir).w)
> {
> x += XmFormPath(f, FCP_Atta(con1, dir).w, dir,
> atta);
> }
> ***************
> *** 1730,1736 ****
> break;
> }
>
> ! if (FCP_Atta(con, dir).type == XmATTACH_WIDGET)
> {
> x += XmFormPath(f, FCP_Atta(con, dir).w, dir, atta);
> }
> --- 1730,1736 ----
> break;
> }
>
> ! if (FCP_Atta(con, dir).type == XmATTACH_WIDGET && FCP_Atta(con,
> dir).w)
> {
> x += XmFormPath(f, FCP_Atta(con, dir).w, dir, atta);
> }
>
>
>
>
> On Mon, 2004-05-03 at 16:26, Dave Williss wrote:
> > Yes that change works. I also made the same change for the other
> > directions.
> >
> > ----- Original Message -----
> > From: "Danny Backx" <[EMAIL PROTECTED]>
> > To: "Dave Williss" <[EMAIL PROTECTED]>
> > Cc: "LessTif Mailing List" <[EMAIL PROTECTED]>
> > Sent: Saturday, May 01, 2004 4:40 AM
> > Subject: Re: [Lesstif] Building on MacOS X
> >
> >
> > > On Wed, 2004-04-28 at 21:26, Dave Williss wrote:
> > > > I found that lib/Xm-2.1/FontList.c, ResConvert.c and
> > > > RenderTable.c wouldn't compile because Mac OS X
> > > > doesn't have fontconfig/fontconfig.h.
> > >
> > > This is strange, I would expect the configure script to
> > > figure out whether you have fontconfig, and do the
> > > right thing.
> > >
> > > > Oddly enough, if
> > > > I commented out the include, the modules compiled
> > > > anyway.
> > >
> > > You appear to be right; I suspect this is a leftover
> > > from the change in design between Xft and fontconfig.
> > > I should have removed the fontconfig.h references
> > > when making the API changes.
> > >
> > > > The library mostly works, however one of my dialogs
> > > > causes a crash in Form.c, line 1483. In Motif, if you
> > > > set XmNtopAttachment (or any Attachment) to
> > > > XmATTACH_WIDGET, but then set XmNtopWidget
> > > > to 0, it treats it as XmATTACH_FORM. According
> > > > to the documentation, this is legal.
> > >
> > > I've added a check in that area, and found a couple
> > > of other cases where this is theoretically possible
> > > (although this case is caught in a number of places,
> > > and worked around, the workaround turns out to have
> > > a hole if you experience a crash).
> > >
> > > Could you check whether this change works for you ?
> > > ***************
> > > *** 1481,1487 ****
> > > if (FCP_Atta(con, TOP).type == XmATTACH_SELF) {
> > > p.request_mode |= CWY;
> > > } else if (FCP_Atta(con, TOP).type == XmATTACH_WIDGET &&
> > > ! !XtIsManaged(FCP_Atta(con, TOP).w)) {
> > > /* Danny experimental bug #531123 */
> > > SETY(XtY(FCP_Atta(con, TOP).w));
> > > DEBUGOUT(_LtDebug2(__FILE__, f, child, "Yow(%s) %d\n",
> > > --- 1481,1487 ----
> > > if (FCP_Atta(con, TOP).type == XmATTACH_SELF) {
> > > p.request_mode |= CWY;
> > > } else if (FCP_Atta(con, TOP).type == XmATTACH_WIDGET &&
> > > ! FCP_Atta(con, TOP).w && !XtIsManaged(FCP_Atta(con,
> > > TOP).w)) {
> > > /* Danny experimental bug #531123 */
> > > SETY(XtY(FCP_Atta(con, TOP).w));
> > > DEBUGOUT(_LtDebug2(__FILE__, f, child, "Yow(%s) %d\n",
> > >
> > >
> > > > Lesstif just tries to dereference the NULL widget and
> > > > crashes.
> > >
> > > No more, I would hope.
> > >
> > > Danny
> > > --
> > > Danny Backx - danny.backx-at-skynet.be
> --
> Danny Backx - danny.backx-at-skynet.be
_______________________________________________
Lesstif mailing list
[EMAIL PROTECTED]
https://terror.hungry.com/mailman/listinfo/lesstif