aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKarl Heuer1994-11-15 23:38:26 +0000
committerKarl Heuer1994-11-15 23:38:26 +0000
commitc1a2bfad02a83f1f957e507c81fe942a40ae0dcb (patch)
treec4bfbc3daae3a6ae5c1eebbd9feee7f1351585da /src
parent9f56ecfc2f80a691f0e2fac1fb0c2b8ee3c20a29 (diff)
downloademacs-c1a2bfad02a83f1f957e507c81fe942a40ae0dcb.tar.gz
emacs-c1a2bfad02a83f1f957e507c81fe942a40ae0dcb.zip
(GC_INTEGERP, etc): New type-test macros for use during GC.
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 4ac94558336..6fc58173090 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -745,45 +745,72 @@ typedef unsigned char UCHAR;
745 745
746#ifdef LISP_FLOAT_TYPE 746#ifdef LISP_FLOAT_TYPE
747#define NUMBERP(x) (INTEGERP (x) || FLOATP (x)) 747#define NUMBERP(x) (INTEGERP (x) || FLOATP (x))
748#define GC_NUMBERP(x) (GC_INTEGERP (x) || GC_FLOATP (x))
748#else 749#else
749#define NUMBERP(x) (INTEGERP (x)) 750#define NUMBERP(x) (INTEGERP (x))
751#define GC_NUMBERP(x) (GC_INTEGERP (x))
750#endif 752#endif
751#define NATNUMP(x) (INTEGERP (x) && XINT (x) >= 0) 753#define NATNUMP(x) (INTEGERP (x) && XINT (x) >= 0)
754#define GC_NATNUMP(x) (GC_INTEGERP (x) && XINT (x) >= 0)
752 755
753#define INTEGERP(x) (XTYPE ((x)) == Lisp_Int) 756#define INTEGERP(x) (XTYPE ((x)) == Lisp_Int)
757#define GC_INTEGERP(x) (XGCTYPE ((x)) == Lisp_Int)
754#define SYMBOLP(x) (XTYPE ((x)) == Lisp_Symbol) 758#define SYMBOLP(x) (XTYPE ((x)) == Lisp_Symbol)
759#define GC_SYMBOLP(x) (XGCTYPE ((x)) == Lisp_Symbol)
755#define MISCP(x) (XTYPE ((x)) == Lisp_Misc) 760#define MISCP(x) (XTYPE ((x)) == Lisp_Misc)
761#define GC_MISCP(x) (XGCTYPE ((x)) == Lisp_Misc)
756#define STRINGP(x) (XTYPE ((x)) == Lisp_String) 762#define STRINGP(x) (XTYPE ((x)) == Lisp_String)
763#define GC_STRINGP(x) (XGCTYPE ((x)) == Lisp_String)
757#define VECTORP(x) (XTYPE ((x)) == Lisp_Vector) 764#define VECTORP(x) (XTYPE ((x)) == Lisp_Vector)
765#define GC_VECTORP(x) (XGCTYPE ((x)) == Lisp_Vector)
758#define CONSP(x) (XTYPE ((x)) == Lisp_Cons) 766#define CONSP(x) (XTYPE ((x)) == Lisp_Cons)
767#define GC_CONSP(x) (XGCTYPE ((x)) == Lisp_Cons)
759#define COMPILEDP(x) (XTYPE ((x)) == Lisp_Compiled) 768#define COMPILEDP(x) (XTYPE ((x)) == Lisp_Compiled)
769#define GC_COMPILEDP(x) (XGCTYPE ((x)) == Lisp_Compiled)
760#define BUFFERP(x) (XTYPE ((x)) == Lisp_Buffer) 770#define BUFFERP(x) (XTYPE ((x)) == Lisp_Buffer)
771#define GC_BUFFERP(x) (XGCTYPE ((x)) == Lisp_Buffer)
761#define SUBRP(x) (XTYPE ((x)) == Lisp_Subr) 772#define SUBRP(x) (XTYPE ((x)) == Lisp_Subr)
773#define GC_SUBRP(x) (XGCTYPE ((x)) == Lisp_Subr)
762#define PROCESSP(x) (XTYPE ((x)) == Lisp_Process) 774#define PROCESSP(x) (XTYPE ((x)) == Lisp_Process)
775#define GC_PROCESSP(x) (XGCTYPE ((x)) == Lisp_Process)
763#ifdef MULTI_FRAME 776#ifdef MULTI_FRAME
764#define FRAMEP(x) (XTYPE ((x)) == Lisp_Frame) 777#define FRAMEP(x) (XTYPE ((x)) == Lisp_Frame)
778#define GC_FRAMEP(x) (XGCTYPE ((x)) == Lisp_Frame)
765#else 779#else
766#ifdef HAVE_MOUSE 780#ifdef HAVE_MOUSE
767/* We could use this in the !HAVE_MOUSE case also, but we prefer a compile-time 781/* We could use this in the !HAVE_MOUSE case also, but we prefer a compile-time
768 error message in case FRAMEP is used. */ 782 error message in case FRAMEP is used. */
769#define FRAMEP(x) (EQ (x, Fselected_frame ())) 783#define FRAMEP(x) (EQ (x, Fselected_frame ()))
784#define GC_FRAMEP(x) (GC_EQ (x, Fselected_frame ()))
770#endif 785#endif
771#endif 786#endif
772#define WINDOWP(x) (XTYPE ((x)) == Lisp_Window) 787#define WINDOWP(x) (XTYPE ((x)) == Lisp_Window)
788#define GC_WINDOWP(x) (XGCTYPE ((x)) == Lisp_Window)
773#define WINDOW_CONFIGURATIONP(x) (XTYPE ((x)) == Lisp_Window_Configuration) 789#define WINDOW_CONFIGURATIONP(x) (XTYPE ((x)) == Lisp_Window_Configuration)
790#define GC_WINDOW_CONFIGURATIONP(x) (XGCTYPE ((x)) == Lisp_Window_Configuration)
774#ifdef LISP_FLOAT_TYPE 791#ifdef LISP_FLOAT_TYPE
775#define FLOATP(x) (XTYPE ((x)) == Lisp_Float) 792#define FLOATP(x) (XTYPE ((x)) == Lisp_Float)
793#define GC_FLOATP(x) (XGCTYPE ((x)) == Lisp_Float)
776#else 794#else
777#define FLOATP(x) (0) 795#define FLOATP(x) (0)
796#define GC_FLOATP(x) (0)
778#endif 797#endif
779#define OVERLAYP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Overlay) 798#define OVERLAYP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Overlay)
799#define GC_OVERLAYP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Overlay)
780#define MARKERP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker) 800#define MARKERP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker)
801#define GC_MARKERP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker)
781#define INTFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd) 802#define INTFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd)
803#define GC_INTFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd)
782#define BOOLFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd) 804#define BOOLFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd)
805#define GC_BOOLFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd)
783#define OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Objfwd) 806#define OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Objfwd)
807#define GC_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Objfwd)
784#define BUFFER_OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Objfwd) 808#define BUFFER_OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Objfwd)
809#define GC_BUFFER_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Objfwd)
785#define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value) 810#define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value)
811#define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value)
786#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value) 812#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value)
813#define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value)
787 814
788#define EQ(x, y) (XFASTINT (x) == XFASTINT (y)) 815#define EQ(x, y) (XFASTINT (x) == XFASTINT (y))
789#define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y)) 816#define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y))