aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/buffer.c b/src/buffer.c
index a37a61c0fc8..a40270c945c 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3672,18 +3672,17 @@ modify_overlay (struct buffer *buf, ptrdiff_t start, ptrdiff_t end)
3672 ++BUF_OVERLAY_MODIFF (buf); 3672 ++BUF_OVERLAY_MODIFF (buf);
3673} 3673}
3674 3674
3675 3675/* Remove OVERLAY from LIST. */
3676
3676static struct Lisp_Overlay * 3677static struct Lisp_Overlay *
3677unchain_overlay (struct Lisp_Overlay *list, struct Lisp_Overlay *overlay) 3678unchain_overlay (struct Lisp_Overlay *list, struct Lisp_Overlay *overlay)
3678{ 3679{
3679 struct Lisp_Overlay *tmp, *prev; 3680 register struct Lisp_Overlay *tail, **prev = &list;
3680 for (tmp = list, prev = NULL; tmp; prev = tmp, tmp = tmp->next) 3681
3681 if (tmp == overlay) 3682 for (tail = list; tail; prev = &tail->next, tail = *prev)
3683 if (tail == overlay)
3682 { 3684 {
3683 if (prev) 3685 *prev = overlay->next;
3684 prev->next = tmp->next;
3685 else
3686 list = tmp->next;
3687 overlay->next = NULL; 3686 overlay->next = NULL;
3688 break; 3687 break;
3689 } 3688 }