summaryrefslogtreecommitdiff
path: root/lisp/cus-edit.el
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2018-06-14 15:59:09 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2018-06-14 17:13:39 -0700
commitaca938d1f4ec176a2d00a77693b231298b9c5c4e (patch)
tree7498947860bca4044afef608d1dc03e4717fde3d /lisp/cus-edit.el
parent6c04c848e677e458e39811b10335cd6aeece6e2a (diff)
downloademacs-aca938d1f4ec176a2d00a77693b231298b9c5c4e.tar.gz
emacs-aca938d1f4ec176a2d00a77693b231298b9c5c4e.tar.bz2
emacs-aca938d1f4ec176a2d00a77693b231298b9c5c4e.zip
Avoid allocating Lisp_Save_Value for excursions
* src/editfns.c (save_excursion_save): New arg PDL, specifying where to save the state. All uses changed. (save_excursion_restore): Args are now the marker and info rather than a pointer to a Lisp_Save_Value containing them. All uses changed. * src/eval.c (default_toplevel_binding, Fbacktrace__locals): Treat excursions like other miscellaneous pdl types. (record_unwind_protect_excursion): Save data directly into the pdl rather than creating an object on the heap. This avoids the need to allocate and free an object. (do_one_unbind, backtrace_eval_unrewind): Unwind excursions directly. (mark_specpdl): Mark excursions directly. * src/lisp.h (SPECPDL_UNWIND_EXCURSION): New constant. (union specbinding): New member unwind_excursion.
Diffstat (limited to 'lisp/cus-edit.el')
0 files changed, 0 insertions, 0 deletions