Mercurial > emacs
diff src/lisp.h @ 85345:35d2f0abc597
(XMISCANY, XMARKER, XINTFWD, XBOOLFWD, XOBJFWD, XOVERLAY, XBUFFER_OBJFWD)
(XBUFFER_LOCAL_VALUE, XKBOARD_OBJFWD, XSAVE_VALUE): Add type checks.
(SOME_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP): Remove.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 17 Oct 2007 02:13:01 +0000 |
parents | d0d527210b0c |
children | 4f5a9f3d91ae 1251cabc40b7 |
line wrap: on
line diff
--- a/src/lisp.h Wed Oct 17 02:10:38 2007 +0000 +++ b/src/lisp.h Wed Oct 17 02:13:01 2007 +0000 @@ -521,17 +521,20 @@ /* Misc types. */ #define XMISC(a) ((union Lisp_Misc *) XPNTR(a)) -#define XMISCANY(a) (&(XMISC(a)->u_any)) +#define XMISCANY(a) (eassert (MISCP (a)), &(XMISC(a)->u_any)) #define XMISCTYPE(a) (XMISCANY (a)->type) -#define XMARKER(a) (&(XMISC(a)->u_marker)) -#define XINTFWD(a) (&(XMISC(a)->u_intfwd)) -#define XBOOLFWD(a) (&(XMISC(a)->u_boolfwd)) -#define XOBJFWD(a) (&(XMISC(a)->u_objfwd)) -#define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd)) -#define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value)) -#define XOVERLAY(a) (&(XMISC(a)->u_overlay)) -#define XKBOARD_OBJFWD(a) (&(XMISC(a)->u_kboard_objfwd)) -#define XSAVE_VALUE(a) (&(XMISC(a)->u_save_value)) +#define XMARKER(a) (eassert (MARKERP (a)), &(XMISC(a)->u_marker)) +#define XINTFWD(a) (eassert (INTFWDP (a)), &(XMISC(a)->u_intfwd)) +#define XBOOLFWD(a) (eassert (BOOLFWDP (a)), &(XMISC(a)->u_boolfwd)) +#define XOBJFWD(a) (eassert (OBJFWDP (a)), &(XMISC(a)->u_objfwd)) +#define XOVERLAY(a) (eassert (OVERLAYP (a)), &(XMISC(a)->u_overlay)) +#define XSAVE_VALUE(a) (eassert (SAVE_VALUEP (a)), &(XMISC(a)->u_save_value)) +#define XBUFFER_OBJFWD(a) \ + (eassert (BUFFER_OBJFWDP (a)), &(XMISC(a)->u_buffer_objfwd)) +#define XBUFFER_LOCAL_VALUE(a) \ + (eassert (BUFFER_LOCAL_VALUEP (a)), &(XMISC(a)->u_buffer_local_value)) +#define XKBOARD_OBJFWD(a) \ + (eassert (KBOARD_OBJFWDP (a)), &(XMISC(a)->u_kboard_objfwd)) /* Pseudovector types. */ @@ -1494,10 +1497,9 @@ #define GC_BUFFER_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd) #define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value) #define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value) -#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value) -#define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value) #define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd) #define GC_KBOARD_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd) +#define SAVE_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value) /* True if object X is a pseudovector whose code is CODE. */