emacs-devel
[Top][All Lists]
Advanced

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

Re: Dynamic loading progress


From: Eli Zaretskii
Subject: Re: Dynamic loading progress
Date: Thu, 15 Oct 2015 18:38:20 +0300

> From: Andreas Schwab <address@hidden>
> Cc: Philipp Stephani <address@hidden>,  address@hidden,  address@hidden,  
> address@hidden,  address@hidden
> Date: Thu, 15 Oct 2015 09:00:35 +0200
> 
> >>     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.

Right, for pointers to simple data types, like 'char', 'short', 'int',
etc., one needs to use Lisp_Save_Value.  For pointers to struct's, XLI
and XIL will do the job on the supported platforms.



reply via email to

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