aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorPaul Eggert2018-06-07 19:12:28 -0700
committerPaul Eggert2018-06-14 17:13:39 -0700
commitf8ad6b311bf142defe4c203b64713c5a5051c4a7 (patch)
treec71ed1a58720561a817173daa44ad21575cc2cce /src/alloc.c
parentd98670eb04925fdc4a4928a9b0d0858881da418f (diff)
downloademacs-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.c12
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
3830Lisp_Object
3831make_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
3832Lisp_Object 3840Lisp_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;