[cmucl-imp] motifd isn't 64-bit kosher
Richard M Kreuter
kreuter at progn.net
Sun Jul 6 19:01:14 UTC 2014
Argh. Didn't finish writing this.
Richard M Kreuter writes:
Greetings,
I believe it turns out to be a fluke that a 64-bit motifd works
anywhere: 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
#x8045d8900, so motifd hands out #x45d8900, and then attempting to
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, I think. Does anybody have any notion of how
better to do this than to add a table mapping pointers to some kind of
opaque IDs at the message layer?
Thanks,
Richard
[1] I think the complete list is AcceleratorTable, Atom, FontList,
TranslationTable, Widget, and sometimes XmString.
More information about the cmucl-imp
mailing list