diff options
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/src/alloc.c b/src/alloc.c index fea0cec383b..337668f9c31 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -6495,28 +6495,10 @@ mark_object (Lisp_Object arg) | |||
| 6495 | mark_char_table (ptr, (enum pvec_type) pvectype); | 6495 | mark_char_table (ptr, (enum pvec_type) pvectype); |
| 6496 | break; | 6496 | break; |
| 6497 | 6497 | ||
| 6498 | case PVEC_MARKER: | ||
| 6499 | /* DO NOT mark thru the marker's chain. | ||
| 6500 | The buffer's markers chain does not preserve markers from gc; | ||
| 6501 | instead, markers are removed from the chain when freed by gc. */ | ||
| 6502 | case PVEC_BOOL_VECTOR: | ||
| 6503 | case PVEC_MISC_PTR: | ||
| 6504 | #ifdef HAVE_MODULES | ||
| 6505 | case PVEC_USER_PTR: | ||
| 6506 | #endif | ||
| 6507 | /* No Lisp_Objects to mark in these. */ | ||
| 6508 | VECTOR_MARK (ptr); | ||
| 6509 | break; | ||
| 6510 | |||
| 6511 | case PVEC_OVERLAY: | 6498 | case PVEC_OVERLAY: |
| 6512 | mark_overlay (XOVERLAY (obj)); | 6499 | mark_overlay (XOVERLAY (obj)); |
| 6513 | break; | 6500 | break; |
| 6514 | 6501 | ||
| 6515 | case PVEC_FINALIZER: | ||
| 6516 | VECTOR_MARK (ptr); | ||
| 6517 | mark_object (XFINALIZER (obj)->function); | ||
| 6518 | break; | ||
| 6519 | |||
| 6520 | case PVEC_SUBR: | 6502 | case PVEC_SUBR: |
| 6521 | break; | 6503 | break; |
| 6522 | 6504 | ||
| @@ -6524,6 +6506,8 @@ mark_object (Lisp_Object arg) | |||
| 6524 | emacs_abort (); | 6506 | emacs_abort (); |
| 6525 | 6507 | ||
| 6526 | default: | 6508 | default: |
| 6509 | /* A regular vector, or a pseudovector needing no special | ||
| 6510 | treatment. */ | ||
| 6527 | mark_vectorlike (ptr); | 6511 | mark_vectorlike (ptr); |
| 6528 | } | 6512 | } |
| 6529 | } | 6513 | } |