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>