Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 4 Jul 2012 14:38:02 +0000 (10:38 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 4 Jul 2012 14:38:02 +0000 (10:38 -0400)
commitee28be33a535e41c74f3a4d5c0f3878e44366942
treeaea01076d95159b7559ec34cd47acd9245f46a7b
parent1a9746debdc8965edd84d27537ef9c55511ea04e
Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
* src/lisp.h (enum pvec_type): Use fewer bits.
(PSEUDOVECTOR_SIZE_BITS): New constant.
(PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
(XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
change in pvec_type.
(PSEUDOVECTOR_TYPEP): New macro.
(TYPED_PSEUDOVECTORP): Use it.
* src/fns.c (internal_equal): Adapt code to extract pvectype.
* src/emacs.c (gdb_pvec_type): Update type.
* src/alloc.c (PSEUDOVECTOR_NBYTES): New macro.
(VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
(VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
(SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
(sweep_vectors): Use it.  Use local var `total_bytes' instead of
abusing vector->header.next.nbytes.
(live_vector_p): Use PVEC_TYPE.
(mark_object): Adapt code to extract pvectype.  Use switch.
src/ChangeLog
src/alloc.c
src/emacs.c
src/fns.c
src/lisp.h