Fast save_excursion_save and save_excursion_restore.
authorDmitry Antipov <dmantipov@yandex.ru>
Fri, 27 Jul 2012 02:47:07 +0000 (06:47 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Fri, 27 Jul 2012 02:47:07 +0000 (06:47 +0400)
commit6195f3845db9aa785e644f55c86270788b293740
tree7c3d2d715fdf0edb4789e736d42ad3b893c73ef9
parent562157c814037dcba58a20cd6908a95992c22283
Fast save_excursion_save and save_excursion_restore.
* lisp.h (struct Lisp_Excursion): New data type.
(PVEC_EXCURSION): New pseudovector type.
(XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
to deal with it.  Adjust comments.
(init_marker, attach_marker): New prototype.
(unchain_marker): Adjust prototype.
* marker.c (attach_marker): Change to global.
(init_marker): New function.
* alloc.c (Fmake_marker, build_marker): Use it.
(build_marker): More easserts.
(mark_object): Handle struct Lisp_Excursion.
* editfns.c (save_excursion_save, save_excursion_restore):
Reimplement to use struct Lisp_Excursion.  Add comments.
src/ChangeLog
src/alloc.c
src/editfns.c
src/lisp.h
src/marker.c