diff options
| author | Paul Eggert | 2018-06-07 19:12:28 -0700 |
|---|---|---|
| committer | Paul Eggert | 2018-06-14 17:13:39 -0700 |
| commit | f8ad6b311bf142defe4c203b64713c5a5051c4a7 (patch) | |
| tree | c71ed1a58720561a817173daa44ad21575cc2cce /src/alloc.c | |
| parent | d98670eb04925fdc4a4928a9b0d0858881da418f (diff) | |
| download | emacs-f8ad6b311bf142defe4c203b64713c5a5051c4a7.tar.gz emacs-f8ad6b311bf142defe4c203b64713c5a5051c4a7.zip | |
New type Lisp_Misc_Ptr
This is a streamlined version of Lisp_Save_Value, which contains just
a pointer, as that is all Lisp_Save_Values are used for any more.
With the previous changes, these objects are not primarily used as
save values, so just call them "Misc" rather than "Save".
* src/alloc.c (make_misc_ptr): New function.
(mark_object): Mark Lisp_Misc_Ptr too.
* src/lisp.h (Lisp_Misc_Ptr): New constant.
(struct Lisp_Misc_Ptr): New type.
(make_mint_ptr, mint_ptrp, xmint_pointer):
Use Lisp_Misc_Ptr, not Lisp_Save_Value.
(union Lisp_Misc): Add Lisp_Misc_Ptr.
* src/print.c (print_object): Print Lisp_Misc_Ptr.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c index 1d3ec4fbb8a..6b57c83cc2e 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -3827,6 +3827,14 @@ free_save_value (Lisp_Object save) | |||
| 3827 | free_misc (save); | 3827 | free_misc (save); |
| 3828 | } | 3828 | } |
| 3829 | 3829 | ||
| 3830 | Lisp_Object | ||
| 3831 | make_misc_ptr (void *a) | ||
| 3832 | { | ||
| 3833 | Lisp_Object val = allocate_misc (Lisp_Misc_Ptr); | ||
| 3834 | XUNTAG (val, Lisp_Misc, struct Lisp_Misc_Ptr)->pointer = a; | ||
| 3835 | return val; | ||
| 3836 | } | ||
| 3837 | |||
| 3830 | /* Return a Lisp_Misc_Overlay object with specified START, END and PLIST. */ | 3838 | /* Return a Lisp_Misc_Overlay object with specified START, END and PLIST. */ |
| 3831 | 3839 | ||
| 3832 | Lisp_Object | 3840 | Lisp_Object |
| @@ -6692,6 +6700,10 @@ mark_object (Lisp_Object arg) | |||
| 6692 | mark_save_value (XSAVE_VALUE (obj)); | 6700 | mark_save_value (XSAVE_VALUE (obj)); |
| 6693 | break; | 6701 | break; |
| 6694 | 6702 | ||
| 6703 | case Lisp_Misc_Ptr: | ||
| 6704 | XMISCANY (obj)->gcmarkbit = true; | ||
| 6705 | break; | ||
| 6706 | |||
| 6695 | case Lisp_Misc_Overlay: | 6707 | case Lisp_Misc_Overlay: |
| 6696 | mark_overlay (XOVERLAY (obj)); | 6708 | mark_overlay (XOVERLAY (obj)); |
| 6697 | break; | 6709 | break; |