diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2018-06-07 19:12:28 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2018-06-14 17:13:39 -0700 |
commit | d98670eb04925fdc4a4928a9b0d0858881da418f (patch) | |
tree | 52d74dac7f568f7bcfe252ec9efd7658177895e0 /lisp/cus-edit.el | |
parent | aca938d1f4ec176a2d00a77693b231298b9c5c4e (diff) | |
download | emacs-d98670eb04925fdc4a4928a9b0d0858881da418f.tar.gz emacs-d98670eb04925fdc4a4928a9b0d0858881da418f.tar.bz2 emacs-d98670eb04925fdc4a4928a9b0d0858881da418f.zip |
Avoid allocating Lisp_Save_Value for arrays
* src/alloc.c (mark_maybe_objects): New function.
* src/eval.c (default_toplevel_binding)
(backtrace_eval_unrewind, Fbacktrace__locals):
Treat array unwindings like other miscellaneous pdl types.
(record_unwind_protect_array): New function.
(do_one_unbind): Free the array while unwinding.
(mark_specpdl): Mark arrays directly.
* src/lisp.h (SPECPDL_UNWIND_ARRAY): New constant.
(union specbinding): New member unwind_array.
(SAFE_ALLOCA_LISP_EXTRA): Use record_unwind_protect_array
instead of make_save_memory + record_unwind_protect.
Diffstat (limited to 'lisp/cus-edit.el')
0 files changed, 0 insertions, 0 deletions