aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2007-06-29 03:38:07 +0000
committerStefan Monnier2007-06-29 03:38:07 +0000
commit2706ceb633bedd382772741c0b73baef116d8eda (patch)
treef61e971fc676044a2117f558b0ee92a9bebdf91d
parent8e50cc2df8df6f773422ab11805704eaa4bba016 (diff)
downloademacs-2706ceb633bedd382772741c0b73baef116d8eda.tar.gz
emacs-2706ceb633bedd382772741c0b73baef116d8eda.zip
(XGCTYPE, GC_HASH_TABLE_P, GC_NILP, GC_NUMBERP, GC_NATNUMP)
(GC_INTEGERP, GC_SYMBOLP, GC_MISCP, GC_VECTORLIKEP, GC_STRINGP) (GC_CONSP, GC_FLOATP, GC_VECTORP, GC_OVERLAYP, GC_MARKERP) (GC_INTFWDP, GC_BOOLFWDP, GC_OBJFWDP, GC_BUFFER_OBJFWDP) (GC_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP) (GC_KBOARD_OBJFWDP, GC_PSEUDOVECTORP, GC_WINDOW_CONFIGURATIONP) (GC_PROCESSP, GC_WINDOWP, GC_SUBRP, GC_COMPILEDP, GC_BUFFERP) (GC_SUB_CHAR_TABLE_P, GC_CHAR_TABLE_P, GC_BOOL_VECTOR_P, GC_FRAMEP) (GC_EQ): Remove since they've been identical to their non-GC_ alter-egos ever since the markbit was eradicated.
-rw-r--r--src/lisp.h71
1 files changed, 10 insertions, 61 deletions
diff --git a/src/lisp.h b/src/lisp.h
index df62a261fe4..c8ca4c49ec6 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -463,17 +463,6 @@ extern Lisp_Object make_number P_ ((EMACS_INT));
463 463
464#endif /* NO_UNION_TYPE */ 464#endif /* NO_UNION_TYPE */
465 465
466/* During garbage collection, XGCTYPE must be used for extracting types
467 so that the mark bit is ignored. XMARKBIT accesses the markbit.
468 Markbits are used only in particular slots of particular structure types.
469 Other markbits are always zero.
470 Outside of garbage collection, all mark bits are always zero. */
471
472#ifndef XGCTYPE
473/* The distinction does not exist now that the MARKBIT has been eliminated. */
474#define XGCTYPE(a) XTYPE (a)
475#endif
476
477#ifndef XPNTR 466#ifndef XPNTR
478#ifdef HAVE_SHM 467#ifdef HAVE_SHM
479/* In this representation, data is found in two widely separated segments. */ 468/* In this representation, data is found in two widely separated segments. */
@@ -515,11 +504,11 @@ extern size_t pure_size;
515 504
516/* Extract a value or address from a Lisp_Object. */ 505/* Extract a value or address from a Lisp_Object. */
517 506
518#define XCONS(a) (eassert (GC_CONSP(a)),(struct Lisp_Cons *) XPNTR(a)) 507#define XCONS(a) (eassert (CONSP(a)),(struct Lisp_Cons *) XPNTR(a))
519#define XVECTOR(a) (eassert (GC_VECTORLIKEP(a)),(struct Lisp_Vector *) XPNTR(a)) 508#define XVECTOR(a) (eassert (VECTORLIKEP(a)),(struct Lisp_Vector *) XPNTR(a))
520#define XSTRING(a) (eassert (GC_STRINGP(a)),(struct Lisp_String *) XPNTR(a)) 509#define XSTRING(a) (eassert (STRINGP(a)),(struct Lisp_String *) XPNTR(a))
521#define XSYMBOL(a) (eassert (GC_SYMBOLP(a)),(struct Lisp_Symbol *) XPNTR(a)) 510#define XSYMBOL(a) (eassert (SYMBOLP(a)),(struct Lisp_Symbol *) XPNTR(a))
522#define XFLOAT(a) (eassert (GC_FLOATP(a)),(struct Lisp_Float *) XPNTR(a)) 511#define XFLOAT(a) (eassert (FLOATP(a)),(struct Lisp_Float *) XPNTR(a))
523 512
524/* Misc types. */ 513/* Misc types. */
525 514
@@ -537,10 +526,10 @@ extern size_t pure_size;
537 526
538/* Pseudovector types. */ 527/* Pseudovector types. */
539 528
540#define XPROCESS(a) (eassert (GC_PROCESSP(a)),(struct Lisp_Process *) XPNTR(a)) 529#define XPROCESS(a) (eassert (PROCESSP(a)),(struct Lisp_Process *) XPNTR(a))
541#define XWINDOW(a) (eassert (GC_WINDOWP(a)),(struct window *) XPNTR(a)) 530#define XWINDOW(a) (eassert (WINDOWP(a)),(struct window *) XPNTR(a))
542#define XSUBR(a) (eassert (GC_SUBRP(a)),(struct Lisp_Subr *) XPNTR(a)) 531#define XSUBR(a) (eassert (SUBRP(a)),(struct Lisp_Subr *) XPNTR(a))
543#define XBUFFER(a) (eassert (GC_BUFFERP(a)),(struct buffer *) XPNTR(a)) 532#define XBUFFER(a) (eassert (BUFFERP(a)),(struct buffer *) XPNTR(a))
544#define XCHAR_TABLE(a) ((struct Lisp_Char_Table *) XPNTR(a)) 533#define XCHAR_TABLE(a) ((struct Lisp_Char_Table *) XPNTR(a))
545#define XSUB_CHAR_TABLE(a) ((struct Lisp_Sub_Char_Table *) XPNTR(a)) 534#define XSUB_CHAR_TABLE(a) ((struct Lisp_Sub_Char_Table *) XPNTR(a))
546#define XBOOL_VECTOR(a) ((struct Lisp_Bool_Vector *) XPNTR(a)) 535#define XBOOL_VECTOR(a) ((struct Lisp_Bool_Vector *) XPNTR(a))
@@ -1063,7 +1052,6 @@ struct Lisp_Hash_Table
1063 (XSETPSEUDOVECTOR (VAR, PTR, PVEC_HASH_TABLE)) 1052 (XSETPSEUDOVECTOR (VAR, PTR, PVEC_HASH_TABLE))
1064 1053
1065#define HASH_TABLE_P(OBJ) PSEUDOVECTORP (OBJ, PVEC_HASH_TABLE) 1054#define HASH_TABLE_P(OBJ) PSEUDOVECTORP (OBJ, PVEC_HASH_TABLE)
1066#define GC_HASH_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_HASH_TABLE)
1067 1055
1068#define CHECK_HASH_TABLE(x) \ 1056#define CHECK_HASH_TABLE(x) \
1069 CHECK_TYPE (HASH_TABLE_P (x), Qhash_table_p, x) 1057 CHECK_TYPE (HASH_TABLE_P (x), Qhash_table_p, x)
@@ -1449,48 +1437,28 @@ typedef unsigned char UCHAR;
1449/* Data type checking */ 1437/* Data type checking */
1450 1438
1451#define NILP(x) EQ (x, Qnil) 1439#define NILP(x) EQ (x, Qnil)
1452#define GC_NILP(x) GC_EQ (x, Qnil)
1453 1440
1454#define NUMBERP(x) (INTEGERP (x) || FLOATP (x)) 1441#define NUMBERP(x) (INTEGERP (x) || FLOATP (x))
1455#define GC_NUMBERP(x) (GC_INTEGERP (x) || GC_FLOATP (x))
1456#define NATNUMP(x) (INTEGERP (x) && XINT (x) >= 0) 1442#define NATNUMP(x) (INTEGERP (x) && XINT (x) >= 0)
1457#define GC_NATNUMP(x) (GC_INTEGERP (x) && XINT (x) >= 0)
1458 1443
1459#define INTEGERP(x) (XTYPE ((x)) == Lisp_Int) 1444#define INTEGERP(x) (XTYPE ((x)) == Lisp_Int)
1460#define GC_INTEGERP(x) INTEGERP (x)
1461#define SYMBOLP(x) (XTYPE ((x)) == Lisp_Symbol) 1445#define SYMBOLP(x) (XTYPE ((x)) == Lisp_Symbol)
1462#define GC_SYMBOLP(x) (XGCTYPE ((x)) == Lisp_Symbol)
1463#define MISCP(x) (XTYPE ((x)) == Lisp_Misc) 1446#define MISCP(x) (XTYPE ((x)) == Lisp_Misc)
1464#define GC_MISCP(x) (XGCTYPE ((x)) == Lisp_Misc)
1465#define VECTORLIKEP(x) (XTYPE ((x)) == Lisp_Vectorlike) 1447#define VECTORLIKEP(x) (XTYPE ((x)) == Lisp_Vectorlike)
1466#define GC_VECTORLIKEP(x) (XGCTYPE ((x)) == Lisp_Vectorlike)
1467#define STRINGP(x) (XTYPE ((x)) == Lisp_String) 1448#define STRINGP(x) (XTYPE ((x)) == Lisp_String)
1468#define GC_STRINGP(x) (XGCTYPE ((x)) == Lisp_String)
1469#define CONSP(x) (XTYPE ((x)) == Lisp_Cons) 1449#define CONSP(x) (XTYPE ((x)) == Lisp_Cons)
1470#define GC_CONSP(x) (XGCTYPE ((x)) == Lisp_Cons)
1471 1450
1472#define FLOATP(x) (XTYPE ((x)) == Lisp_Float) 1451#define FLOATP(x) (XTYPE ((x)) == Lisp_Float)
1473#define GC_FLOATP(x) (XGCTYPE ((x)) == Lisp_Float) 1452#define VECTORP(x) (VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG))
1474#define VECTORP(x) (VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG))
1475#define GC_VECTORP(x) (GC_VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG))
1476#define OVERLAYP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay) 1453#define OVERLAYP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay)
1477#define GC_OVERLAYP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay)
1478#define MARKERP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker) 1454#define MARKERP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker)
1479#define GC_MARKERP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker)
1480#define INTFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd) 1455#define INTFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd)
1481#define GC_INTFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd)
1482#define BOOLFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd) 1456#define BOOLFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd)
1483#define GC_BOOLFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd)
1484#define OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd) 1457#define OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd)
1485#define GC_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd)
1486#define BUFFER_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd) 1458#define BUFFER_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd)
1487#define GC_BUFFER_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd)
1488#define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value) 1459#define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value)
1489#define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value)
1490#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value) 1460#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value)
1491#define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value)
1492#define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd) 1461#define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd)
1493#define GC_KBOARD_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd)
1494 1462
1495 1463
1496/* True if object X is a pseudovector whose code is CODE. */ 1464/* True if object X is a pseudovector whose code is CODE. */
@@ -1499,34 +1467,17 @@ typedef unsigned char UCHAR;
1499 && (((XVECTOR (x)->size & (PSEUDOVECTOR_FLAG | (code)))) \ 1467 && (((XVECTOR (x)->size & (PSEUDOVECTOR_FLAG | (code)))) \
1500 == (PSEUDOVECTOR_FLAG | (code)))) 1468 == (PSEUDOVECTOR_FLAG | (code))))
1501 1469
1502/* True if object X is a pseudovector whose code is CODE.
1503 This one works during GC. */
1504#define GC_PSEUDOVECTORP(x, code) \
1505 (GC_VECTORLIKEP (x) \
1506 && (((XVECTOR (x)->size & (PSEUDOVECTOR_FLAG | (code)))) \
1507 == (PSEUDOVECTOR_FLAG | (code))))
1508
1509/* Test for specific pseudovector types. */ 1470/* Test for specific pseudovector types. */
1510#define WINDOW_CONFIGURATIONP(x) PSEUDOVECTORP (x, PVEC_WINDOW_CONFIGURATION) 1471#define WINDOW_CONFIGURATIONP(x) PSEUDOVECTORP (x, PVEC_WINDOW_CONFIGURATION)
1511#define GC_WINDOW_CONFIGURATIONP(x) GC_PSEUDOVECTORP (x, PVEC_WINDOW_CONFIGURATION)
1512#define PROCESSP(x) PSEUDOVECTORP (x, PVEC_PROCESS) 1472#define PROCESSP(x) PSEUDOVECTORP (x, PVEC_PROCESS)
1513#define GC_PROCESSP(x) GC_PSEUDOVECTORP (x, PVEC_PROCESS)
1514#define WINDOWP(x) PSEUDOVECTORP (x, PVEC_WINDOW) 1473#define WINDOWP(x) PSEUDOVECTORP (x, PVEC_WINDOW)
1515#define GC_WINDOWP(x) GC_PSEUDOVECTORP (x, PVEC_WINDOW)
1516#define SUBRP(x) PSEUDOVECTORP (x, PVEC_SUBR) 1474#define SUBRP(x) PSEUDOVECTORP (x, PVEC_SUBR)
1517#define GC_SUBRP(x) GC_PSEUDOVECTORP (x, PVEC_SUBR)
1518#define COMPILEDP(x) PSEUDOVECTORP (x, PVEC_COMPILED) 1475#define COMPILEDP(x) PSEUDOVECTORP (x, PVEC_COMPILED)
1519#define GC_COMPILEDP(x) GC_PSEUDOVECTORP (x, PVEC_COMPILED)
1520#define BUFFERP(x) PSEUDOVECTORP (x, PVEC_BUFFER) 1476#define BUFFERP(x) PSEUDOVECTORP (x, PVEC_BUFFER)
1521#define GC_BUFFERP(x) GC_PSEUDOVECTORP (x, PVEC_BUFFER)
1522#define CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_CHAR_TABLE) 1477#define CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_CHAR_TABLE)
1523#define SUB_CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE) 1478#define SUB_CHAR_TABLE_P(x) PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE)
1524#define GC_SUB_CHAR_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_SUB_CHAR_TABLE)
1525#define GC_CHAR_TABLE_P(x) GC_PSEUDOVECTORP (x, PVEC_CHAR_TABLE)
1526#define BOOL_VECTOR_P(x) PSEUDOVECTORP (x, PVEC_BOOL_VECTOR) 1479#define BOOL_VECTOR_P(x) PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
1527#define GC_BOOL_VECTOR_P(x) GC_PSEUDOVECTORP (x, PVEC_BOOL_VECTOR)
1528#define FRAMEP(x) PSEUDOVECTORP (x, PVEC_FRAME) 1480#define FRAMEP(x) PSEUDOVECTORP (x, PVEC_FRAME)
1529#define GC_FRAMEP(x) GC_PSEUDOVECTORP (x, PVEC_FRAME)
1530 1481
1531/* Test for image (image . spec) */ 1482/* Test for image (image . spec) */
1532#define IMAGEP(x) (CONSP (x) && EQ (XCAR (x), Qimage)) 1483#define IMAGEP(x) (CONSP (x) && EQ (XCAR (x), Qimage))
@@ -1536,8 +1487,6 @@ typedef unsigned char UCHAR;
1536#define ARRAYP(x) \ 1487#define ARRAYP(x) \
1537 (VECTORP (x) || STRINGP (x) || CHAR_TABLE_P (x) || BOOL_VECTOR_P (x)) 1488 (VECTORP (x) || STRINGP (x) || CHAR_TABLE_P (x) || BOOL_VECTOR_P (x))
1538 1489
1539#define GC_EQ(x, y) EQ (x, y)
1540
1541#define CHECK_LIST(x) \ 1490#define CHECK_LIST(x) \
1542 CHECK_TYPE (CONSP (x) || NILP (x), Qlistp, x) 1491 CHECK_TYPE (CONSP (x) || NILP (x), Qlistp, x)
1543 1492