Date: Tue, 6 Jan 1998 17:44:12 -0600 (CST) From: Damon Anton Permezel <dap@damon.com> To: freebsd-hackers@FreeBSD.ORG Subject: Motif question Message-ID: <199801062344.RAA09428@damon.com>
next in thread | raw e-mail | index | archive | help
The jdk115 port uses lesstif-0.81.
I am attempting to resolve some issues pertaining to running some AOL
messenger s/w which comes as a Java application.
(BTW: running this with anything but mwm causes the X-server to rapidly bloat
until all 500meg of swap space is consumed!)
Currently, I'm looking at a SEGV due to a difference in interpretation of
what a "private" data structure should look like.
>From the java:awt_util.c source, it thinks the struct, which hangs off a
vendor specific field in the widget struct
ve = (XmVendorShellExtObject) extData->widget;
if ((im_info = (XmImInfo *) ve->vendor.im_info) == NULL)
return NULL;
else
return im_info->iclist;
lesstif places a:
/*
* This is a private data structure. A pointer to it is in the
* VendorShell Extension object.
*/
typedef struct XmICStuff
{
XIC xic;
XIM xim;
Widget ve, text; /* Don't know if we need this */
struct XmICStuff *next;
}
XmICStuff;
in the vendor.im_info.
Java:awt_util.c thinks that it looks like:
typedef struct {
Widget im_widget;
XIMStyle input_style;
XIC xic;
int status_width;
int status_height;
int preedit_width;
int preedit_height;
XmICStruct *iclist;
XmICStruct *current;
} XmImInfo;
It picks up the `iclist', (random garbage) and faults.
Obviously, the java:awt port for FreeBSD based on lesstif-0.81 should be
modified, but I would appreciate if anyone could provide me any pointers
so I could have the faintest idea as to what the hell is going on here.
I really don't want to have to live-and-breathe Motif, but I would like a
glimmer of understanding as to the issues here.
Specifically, the function in java:awt is `awt_util_getIMStatusHeight', which
has a bunch of side effects:
XtSetArg(args[0], XtNbaseHeight, &base_height);
XtGetValues(vw, args, 1);
if (base_height < 0)
base_height = 0;
XtSetArg(args[0], XtNbaseHeight, base_height);
XtSetValues(vw, args, 1);
and returns `height'.
Blech! Motif is already seeping into my brain. Help!
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801062344.RAA09428>
