diff options
author | Gregory Heytings <gregory@heytings.org> | 2022-11-26 22:38:12 +0000 |
---|---|---|
committer | Gregory Heytings <gregory@heytings.org> | 2022-11-26 23:38:40 +0100 |
commit | 321d4e61551a0f6dfb1abfc0b54e6177735bde58 (patch) | |
tree | a774e7961eb13fae476ad678201f654e586c1d37 /src/editfns.c | |
parent | 1bf0b72eb758440bc4571ebcb49ef0a59f37e51a (diff) | |
download | emacs-321d4e61551a0f6dfb1abfc0b54e6177735bde58.tar.gz |
Minor improvements for locked narrowing
* src/editfns.c (narrowing_lock_pop): Clarify comment, replace
assertion by return.
(narrowing_locks_restore): Add comments.
* lisp/subr.el (with-narrowing, internal--with-narrowing):
Simplify, use a single helper function with an optional argument.
Diffstat (limited to 'src/editfns.c')
-rw-r--r-- | src/editfns.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/editfns.c b/src/editfns.c index 5bfb0b86d14..e99a007a70c 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2712,12 +2712,14 @@ narrowing_lock_push (Lisp_Object buf, Lisp_Object lock) XCAR (XCDR (buffer_locks))))); } -/* Remove the innermost lock in BUF from the narrowing_lock alist. */ +/* Remove the innermost lock in BUF from the narrowing_lock alist. + Do nothing if BUF is not in narrowing_lock. */ static void narrowing_lock_pop (Lisp_Object buf) { Lisp_Object buffer_locks = assq_no_quit (buf, narrowing_locks); - eassert (! NILP (buffer_locks)); + if (NILP (buffer_locks)) + return; if (EQ (narrowing_lock_peek_tag (buf), Qoutermost_narrowing)) narrowing_locks = Fdelq (Fassoc (buf, narrowing_locks, Qnil), narrowing_locks); @@ -2779,8 +2781,12 @@ narrowing_locks_restore (Lisp_Object buf_and_saved_locks) if (NILP (buf_and_saved_locks)) return; Lisp_Object buf = XCAR (buf_and_saved_locks); + /* This cannot fail when buf_and_saved_locks was returned by + narrowing_locks_save. */ eassert (BUFFERP (buf)); Lisp_Object saved_locks = XCDR (buf_and_saved_locks); + /* This cannot fail when buf_and_saved_locks was returned by + narrowing_locks_save. */ eassert (! NILP (saved_locks)); Lisp_Object current_locks = assq_no_quit (buf, narrowing_locks); if (! NILP (current_locks)) |