emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Dynamic loading progress


From: Andreas Schwab
Subject: Re: Dynamic loading progress
Date: Thu, 15 Oct 2015 09:00:35 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eli Zaretskii <address@hidden> writes:

>> From: Philipp Stephani <address@hidden>
>> Date: Wed, 14 Oct 2015 22:28:01 +0000
>> Cc: address@hidden, address@hidden, address@hidden
>> 
>>     > I'm not sure I understood what you wanted.. I've commited this, but it
>>     > assumes Lisp_Object are the same size as pointers...
>>     
>>     That assumption is false in an Emacs built --with-wide-int.
>>     
>>     If you need to wrap a pointer in a Lisp_Object, we have XIL and XLI
>>     macros for that.
>>     
>> 
>> These are no-ops in my version of lisp.h: 
>> 
>> # define lisp_h_XLI(o) (o)
>> # define lisp_h_XIL(i) (i)
>> 
>> Unless I'm misunderstanding something, these macros can't be used to wrap
>> pointers in the general case.
>
> We do that all the time, so I don't understand why you understand
> that.  Please elaborate.

You can only use them for pointers that are known to fit in the range of
Lisp_Int, ie. all tag bits clear.  This is true for all lisp object
pointers (obviously), but not for other pointers.  For boxing arbitrary
pointers we have Lisp_Save_Value.

Andreas.

-- 
Andreas Schwab, SUSE Labs, address@hidden
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]