diff options
| author | Richard M. Stallman | 1995-04-10 00:31:47 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-04-10 00:31:47 +0000 |
| commit | a7aa28f61701529070f3b4396ee1397ed012522a (patch) | |
| tree | 3018e919ea9879ebfaa14e033f9be6569eace1af /src | |
| parent | 8b5b51ce5df809290ebb5fbc58e37a289bd5bd2e (diff) | |
| download | emacs-a7aa28f61701529070f3b4396ee1397ed012522a.tar.gz emacs-a7aa28f61701529070f3b4396ee1397ed012522a.zip | |
(XMISCTYPE): New macro.
(union Lisp_Misc): Delete the `type' field.
Use XMISCTYPE instead of that.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/src/lisp.h b/src/lisp.h index c1460739b1a..4a38de6a61a 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -377,6 +377,7 @@ extern int pure_size; | |||
| 377 | 377 | ||
| 378 | /* Misc types. */ | 378 | /* Misc types. */ |
| 379 | #define XMISC(a) ((union Lisp_Misc *) XPNTR(a)) | 379 | #define XMISC(a) ((union Lisp_Misc *) XPNTR(a)) |
| 380 | #define XMISCTYPE(a) (XMARKER (a)->type) | ||
| 380 | #define XMARKER(a) (&(XMISC(a)->u_marker)) | 381 | #define XMARKER(a) (&(XMISC(a)->u_marker)) |
| 381 | #define XINTFWD(a) (&(XMISC(a)->u_intfwd)) | 382 | #define XINTFWD(a) (&(XMISC(a)->u_intfwd)) |
| 382 | #define XBOOLFWD(a) (&(XMISC(a)->u_boolfwd)) | 383 | #define XBOOLFWD(a) (&(XMISC(a)->u_boolfwd)) |
| @@ -404,7 +405,7 @@ extern int pure_size; | |||
| 404 | 405 | ||
| 405 | /* Misc types. */ | 406 | /* Misc types. */ |
| 406 | #define XSETMISC(a, b) XSET (a, Lisp_Misc, b) | 407 | #define XSETMISC(a, b) XSET (a, Lisp_Misc, b) |
| 407 | #define XSETMARKER(a, b) (XSETMISC (a, b), XMISC (a)->type = Lisp_Misc_Marker) | 408 | #define XSETMARKER(a, b) (XSETMISC (a, b), XMISCTYPE (a) = Lisp_Misc_Marker) |
| 408 | 409 | ||
| 409 | /* Pseudovector types. */ | 410 | /* Pseudovector types. */ |
| 410 | #define XSETPSEUDOVECTOR(a, b, code) \ | 411 | #define XSETPSEUDOVECTOR(a, b, code) \ |
| @@ -772,9 +773,11 @@ struct Lisp_Kboard_Objfwd | |||
| 772 | }; | 773 | }; |
| 773 | 774 | ||
| 774 | 775 | ||
| 776 | /* To get the type field of a union Lisp_Misc, use XMISCTYPE. | ||
| 777 | It uses one of these struct subtypes to get the type field. */ | ||
| 778 | |||
| 775 | union Lisp_Misc | 779 | union Lisp_Misc |
| 776 | { | 780 | { |
| 777 | int type : 16; | ||
| 778 | struct Lisp_Free u_free; | 781 | struct Lisp_Free u_free; |
| 779 | struct Lisp_Marker u_marker; | 782 | struct Lisp_Marker u_marker; |
| 780 | struct Lisp_Intfwd u_intfwd; | 783 | struct Lisp_Intfwd u_intfwd; |
| @@ -926,24 +929,24 @@ typedef unsigned char UCHAR; | |||
| 926 | #endif | 929 | #endif |
| 927 | #define VECTORP(x) (VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG)) | 930 | #define VECTORP(x) (VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG)) |
| 928 | #define GC_VECTORP(x) (GC_VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG)) | 931 | #define GC_VECTORP(x) (GC_VECTORLIKEP (x) && !(XVECTOR (x)->size & PSEUDOVECTOR_FLAG)) |
| 929 | #define OVERLAYP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Overlay) | 932 | #define OVERLAYP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay) |
| 930 | #define GC_OVERLAYP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Overlay) | 933 | #define GC_OVERLAYP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Overlay) |
| 931 | #define MARKERP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker) | 934 | #define MARKERP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker) |
| 932 | #define GC_MARKERP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Marker) | 935 | #define GC_MARKERP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Marker) |
| 933 | #define INTFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd) | 936 | #define INTFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd) |
| 934 | #define GC_INTFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Intfwd) | 937 | #define GC_INTFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Intfwd) |
| 935 | #define BOOLFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd) | 938 | #define BOOLFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd) |
| 936 | #define GC_BOOLFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Boolfwd) | 939 | #define GC_BOOLFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Boolfwd) |
| 937 | #define OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Objfwd) | 940 | #define OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd) |
| 938 | #define GC_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Objfwd) | 941 | #define GC_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd) |
| 939 | #define BUFFER_OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Objfwd) | 942 | #define BUFFER_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd) |
| 940 | #define GC_BUFFER_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Objfwd) | 943 | #define GC_BUFFER_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd) |
| 941 | #define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value) | 944 | #define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value) |
| 942 | #define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Buffer_Local_Value) | 945 | #define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value) |
| 943 | #define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value) | 946 | #define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value) |
| 944 | #define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Some_Buffer_Local_Value) | 947 | #define GC_SOME_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value) |
| 945 | #define KBOARD_OBJFWDP(x) (MISCP (x) && XMISC (x)->type == Lisp_Misc_Kboard_Objfwd) | 948 | #define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd) |
| 946 | #define GC_KBOARD_OBJFWDP(x) (GC_MISCP (x) && XMISC (x)->type == Lisp_Misc_Kboard_Objfwd) | 949 | #define GC_KBOARD_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd) |
| 947 | 950 | ||
| 948 | 951 | ||
| 949 | /* True if object X is a pseudovector whose code is CODE. */ | 952 | /* True if object X is a pseudovector whose code is CODE. */ |