Re: motifd isn't 64-bit kosher

Richard M Kreuter <[email protected]> Sun, 06 Jul 2014 15:01:14 -0400
Newsgroups gmane.lisp.cmucl.devel
Message-ID <[email protected]>
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.
_______________________________________________
cmucl-imp mailing list
[email protected]
http://lists.zs64.net/mailman/listinfo/cmucl-imp