• Dmitry Antipov's avatar
    Fast save_excursion_save and save_excursion_restore. · 6195f384
    Dmitry Antipov authored
    * 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.
    6195f384
marker.c 21.3 KB