diff options
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 15 |
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) ++BUF_OVERLAY_MODIFF (buf); } - +/* Remove OVERLAY from LIST. */ + static struct Lisp_Overlay * unchain_overlay (struct Lisp_Overlay *list, struct Lisp_Overlay *overlay) { - struct Lisp_Overlay *tmp, *prev; - for (tmp = list, prev = NULL; tmp; prev = tmp, tmp = tmp->next) - if (tmp == overlay) + register struct Lisp_Overlay *tail, **prev = &list; + + for (tail = list; tail; prev = &tail->next, tail = *prev) + if (tail == overlay) { - if (prev) - prev->next = tmp->next; - else - list = tmp->next; + *prev = overlay->next; overlay->next = NULL; break; } |