Skip to content
Snippets Groups Projects
Commit 2dd94c9b authored by Raymond Toy's avatar Raymond Toy
Browse files

Fix #84: motifd is 64-bit app.

Merge Richard Kreuter's clm-oids branch to master.  This allows
motifd to work even if motifd is a 64-bit app.  From Richard:

...the server passes out 32-bits of a pointer as external IDs for
instances of a handful of types [1]. On a 64-bit machine, the instances'
addresses might not fit in a 32-bit address, though.

(In fact, on my FreeBSD/amd64 machine, when I run the example from the
documentation, the first shell widget always gets created at
create the second widget with the shell as parent crashes the server.)

Seems like there are two options:

A. Change the wire protocol to accomodate 64-bit integers.

B. Synthesize 32-bit identifiers for instances of the offending types.

Option B seems simpler....

[It] suffices to run the example in the doc and the programs in
INTERFACE.... Obvious problems in the current code:

1. It's a doubly linked alist associating pointers with 32-bit integers.

2. It looks like nothing ever gets removed from the alist....

3. I'm not certain that I've caught all the places where motifd hands
   out pointers to Lisp.

[1] I think the complete list is AcceleratorTable, Atom, FontList,
TranslationTable, Widget, and sometimes XmString.
parents 1daac74f c18c16cd
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment