*BSD News Article 57726


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!nntp.coast.net!chi-news.cic.net!usc!math.ohio-state.edu!jussieu.fr!fdn.fr!r2d2.fdn.org!idefix.fdn.fr!not-for-mail
From: tb@idefix.fdn.fr (Bruno Treguier)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: xpaint 2.1.1 dumps core...
Date: 23 Dec 1995 19:36:13 +0100
Organization: Home sweet home
Lines: 47
Message-ID: <4bhi6t$1p0@idefix.fdn.fr>
NNTP-Posting-Host: idefix.fdn.fr

Hi all,

I recently compiled xpaint-2.1.1 from the archive, after having applied
the appropriate patches from the ports collection, and am currently
having problems with the "select Box" and "select Area" operations.

I tried the pre-compiled version in the packages area, and it seems to
suffer from same problem, so I guess it's not my way of compiling and
linking (which I think is quite standard...) that is causing the trouble.

Description of the problem:

A right button click on one of these two icons pops up a menu, by means
of which you can select or omit a color range, and specify what color
range is to be taken into account. When I select "Select range", xpaint
exits on signal 11 (SIGSEGV).

I dived into the source code, and found the problem had something to do
with the widget "w" passed to the SelectChromaDialog() function, whose
structure, for some unknown (at least to me) reason seems to be somewhat
corrupt.
Certain members like "name" or "screen" of the "core" part of the
widget are NULL pointers, and I guess they shouldn't be... This widget
w is used in a XtScreen(w) call, which of course returns a NULL pointer
(as its "core.screen" member is NULL), and causes the core dump.

The difficulty for me resides in the fact that the function
SelectChromaDialog() is called from another one, changeChromaAction(),
which is a callback, and as I'm no X guru, I really don't have any idea
of what can be going wrong in this widget's "travel" through function
calls and callbacks.
Where does it lose its screen member ? Does it ever get one ?

I've managed to find a workaround, though: replacing the XtScreen(w)
call in SelectChromaDialog() by XtScreenOfObject(w) make the whole
thing work, but I DON'T KNOW WHY ! :-)

Thanks for any help/trick/pointer/money :-)

Merry Christmas and a Happy New Year !

Bruno

-- 
Bruno TREGUIER <tb@idefix.fdn.fr>    | " Il y a 3 sortes de personnes:
FreeBSD 2.1.0, XFree86 3.1.2         |   celles qui savent compter,
Brest, FRANCE                        |   et celles qui ne savent pas..."