/[emacs]/emacs/src/lisp.h
ViewVC logotype

Diff of /emacs/src/lisp.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.435 by rms, Sat Jul 20 21:47:26 2002 UTC revision 1.436 by raeburn, Wed Jul 24 02:07:11 2002 UTC
# Line 352  enum pvec_type Line 352  enum pvec_type
352  #define XUINT(a) ((EMACS_UINT) ((a) & VALMASK))  #define XUINT(a) ((EMACS_UINT) ((a) & VALMASK))
353  #endif  #endif
354    
 #ifndef XPNTR  
 #ifdef HAVE_SHM  
 /* In this representation, data is found in two widely separated segments.  */  
 extern size_t pure_size;  
 #define XPNTR(a) \  
   (XUINT (a) | (XUINT (a) > pure_size ? DATA_SEG_BITS : PURE_SEG_BITS))  
 #else /* not HAVE_SHM */  
 #ifdef DATA_SEG_BITS  
 /* This case is used for the rt-pc.  
    In the diffs I was given, it checked for ptr = 0  
    and did not adjust it in that case.  
    But I don't think that zero should ever be found  
    in a Lisp object whose data type says it points to something.  */  
 #define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)  
 #else  
 #define XPNTR(a) XUINT (a)  
 #endif  
 #endif /* not HAVE_SHM */  
 #endif /* no XPNTR */  
   
355  #ifndef XSET  #ifndef XSET
356  #define XSET(var, type, ptr) \  #define XSET(var, type, ptr) \
357     ((var) = ((EMACS_INT)(type) << VALBITS) + ((EMACS_INT) (ptr) & VALMASK))     ((var) = ((EMACS_INT)(type) << VALBITS) + ((EMACS_INT) (ptr) & VALMASK))
# Line 437  extern size_t pure_size; Line 417  extern size_t pure_size;
417  #endif /* EXPLICIT_SIGN_EXTEND */  #endif /* EXPLICIT_SIGN_EXTEND */
418    
419  #define XUINT(a) ((a).u.val)  #define XUINT(a) ((a).u.val)
 #define XPNTR(a) ((a).u.val)  
420    
421  #define XSET(var, vartype, ptr) \  #define XSET(var, vartype, ptr) \
422     (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype))))     (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype))))
# Line 463  extern Lisp_Object make_number (); Line 442  extern Lisp_Object make_number ();
442    
443  #endif /* NO_UNION_TYPE */  #endif /* NO_UNION_TYPE */
444    
445    #ifndef XPNTR
446    #ifdef HAVE_SHM
447    /* In this representation, data is found in two widely separated segments.  */
448    extern size_t pure_size;
449    #define XPNTR(a) \
450      (XUINT (a) | (XUINT (a) > pure_size ? DATA_SEG_BITS : PURE_SEG_BITS))
451    #else /* not HAVE_SHM */
452    #ifdef DATA_SEG_BITS
453    /* This case is used for the rt-pc.
454       In the diffs I was given, it checked for ptr = 0
455       and did not adjust it in that case.
456       But I don't think that zero should ever be found
457       in a Lisp object whose data type says it points to something.  */
458    #define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
459    #else
460    #define XPNTR(a) XUINT (a)
461    #endif
462    #endif /* not HAVE_SHM */
463    #endif /* no XPNTR */
464    
465  /* Largest and smallest representable fixnum values.  These are the C  /* Largest and smallest representable fixnum values.  These are the C
466     values.  */     values.  */
467    

Legend:
Removed from v.1.435  
changed lines
  Added in v.1.436

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26