diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2014-04-07 12:08:46 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2014-04-07 12:08:46 -0400 |
commit | e3b838807bf9fbbbec9826de6c1e4efdf72acb78 (patch) | |
tree | af955b069b9dab5d52cfed618cf1f2f7cffa40f5 /lisp/emacs-lisp/lisp.el | |
parent | 190f899aed4eeb62286874bda47a92236d52ad4c (diff) | |
download | emacs-e3b838807bf9fbbbec9826de6c1e4efdf72acb78.tar.gz |
* src/alloc.c: Keep track of symbols referenced from pure space (bug#17168).
(symbol_block_pinned): New var.
(Fmake_symbol): Initialize `pinned'.
(purecopy): New function, extracted from Fpurecopy. Mark symbols as
pinned and signal an error for un-purifiable objects.
(pure_cons): Use it.
(Fpurecopy): Use it, except for objects that can't be purified.
(mark_pinned_symbols): New function.
(Fgarbage_collect): Use it.
(gc_sweep): Remove hack made unnecessary.
* src/lisp.h (struct Lisp_Symbol): New bitfield `pinned'.
Diffstat (limited to 'lisp/emacs-lisp/lisp.el')
0 files changed, 0 insertions, 0 deletions