]> git.eshelyaron.com Git - emacs.git/commit
Avoid allocating Lisp_Save_Value for arrays
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 8 Jun 2018 02:12:28 +0000 (19:12 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 15 Jun 2018 00:13:39 +0000 (17:13 -0700)
commitd98670eb04925fdc4a4928a9b0d0858881da418f
tree52d74dac7f568f7bcfe252ec9efd7658177895e0
parentaca938d1f4ec176a2d00a77693b231298b9c5c4e
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.
src/alloc.c
src/eval.c
src/lisp.h