sperber(a)informatik.uni-tuebingen.de (Michael Sperber [Mr. Preprocessor]) writes:
I'm having problems with the frame code which leads to XEmacs
crashing
on AIX 4.3. There's this code in EmacsFrame.c:
void
EmacsFrameRecomputeCellSize (Widget w)
{
EmacsFrame ew = (EmacsFrame) w;
int cw, ch;
struct frame *f = ew->emacs_frame.frame;
... where f ends up being trashed. Now I wish I knew where the
emacs_frame component (of type EmacsFramePart) gets created. However,
grepping for EmacsFramePart doesn't exactly reveal much.
That's because creating widgets built on top of the X toolkit is
something very *very* obscure ;-)
Do I need to look into the lwlib stuff?
No. Actually, Xt widgets creation involves calls to different
functions stored in the Widget Class structure (emacsFrameClassRec). Xt calls
them automatically, and that's why a grep gave you nothing. You might want to
check out the following functions:
EmacsFrameClassInitialize (void);
EmacsFrameInitialize (Widget, Widget, ArgList, Cardinal *);
EmacsFrameRealize (Widget, XtValueMask*, XSetWindowAttributes*);
and likely in your case
EmacsFrameResize (Widget widget);
- class_initialize is called only once (when creating the first widget of this
class).
- initialize and realize are called for each new instance of this widget
class.
Hope this helps.
--
/ / _ _ Didier Verna
http://www.inf.enst.fr/~verna/
- / / - / / /_/ / E.N.S.T. INF C214 mailto:vernaļ¼ inf.enst.fr
/_/ / /_/ / /__ / 46 rue Barrault Tel. (33) 01 45 81 80 72
75634 Paris cedex 13 Fax. (33) 01 45 81 31 19