pim@ele.tue.nl (Pim Buurman) (09/14/90)
I have a problem with the following widget-tree (only the interesting parts are shown). object main_window : XmMainWindow { arguments { XmNmenuBar = command; }; controls { XmMenuBar command; XmScrolledWindow scrollwindow; }; callbacks { MrmNcreateCallback = procedure create_proc (k_main_window); }; }; object scrollwindow : XmScrolledWindow { arguments { XmNverticalScrollBar = XmScrollBar scrollbar; XmNworkWindow = space; }; controls { XmDrawingArea space; XmScrollBar scrollbar; }; callbacks { MrmNcreateCallback = procedure create_proc(k_scrollwindow); }; }; object space : XmDrawingArea { callbacks { MrmNcreateCallback = procedure create_proc(k_space); XmNexposeCallback = procedure exposed(k_space); XmNinputCallback = procedure button_handler(k_space); }; }; The first time when exposed is called, it crashes in XtGetValues with a segmentation fault on our Apollo DN3000: void exposed(w, tag, reason) Widget w; int *tag; XmDrawingAreaCallbackStruct *reason; { Arg wargs[2]; Dimension width, height; XtSetArg(wargs[0], XmNwidth, &width); XtSetArg(wargs[1], XmNheight, &height); XtGetValues(scrollwindow, wargs, 2); I have tried several things, like changing scrollwindow to a BulletinBoard, etc. Nothing worked. However, on our Alliant FX/8 XtGetValues returns a heigth 0 and a wrong width. On our HP 9000/800 XtGetValues returns the RIGHT values. I know, that the HP is too clever with function arguments. My questions are: 1) Is the tree correct ? 2) Might there be a programming error (somewhere else) ? 3) Is there a bug in motif ? We currently use Motif 1.0.A on Apollo and Alliant (self compiled), and Motif 1.0 on HP (from HP).
pim@ele.tue.nl (Pim Buurman) (09/20/90)
I asked last week about a problem I had with XtGetValues. The code was: { Dimension width, height; Arg args[2]; XtSetArg(args[0], XmNwidth, &width); XtSetArg(args[1], XmNheight, &height); XtGetValues(w, args, 2); After a long search I found out, that XtGetValues corrupted the stack. This was due to the fact that it used INT's for width and height. However, I had (sloppy) used the default include files (X11.3), which stated that Dimension was a short. Moral of the story: when you don't have X11.4 and Motif 1.1, set explicitly a -I to the motif include files. Pim. -- ______ Pim Buurman, Phone: +(31)40-473238 Email: pim@ele.tue.nl Eindhoven University of Technology, Dept. of Electr. Eng. (ES/EH 7.24) P.O. Box 513, 5600 MB Eindhoven, The Netherlands