From fd318b54074f824376e7766cf127b6a4624f191a Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 14 Aug 2012 08:49:18 +0400 Subject: [PATCH] Revert and cleanup some recent overlay changes. * buffer.h (enum overlay_type): Remove. (buffer_get_overlays, buffer_set_overlays): Likewise. (buffer_set_overlays_before, buffer_set_overlays_after): New function. Adjust users. (unchain_both): Add eassert. --- src/ChangeLog | 9 ++++ src/alloc.c | 4 +- src/buffer.c | 122 +++++++++++++++++++++++--------------------------- src/buffer.h | 68 +++++++++------------------- src/editfns.c | 4 +- src/fileio.c | 4 +- src/print.c | 6 +-- src/xdisp.c | 4 +- 8 files changed, 99 insertions(+), 122 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index febf65b270f..9cd76d2fc5f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2012-08-14 Dmitry Antipov + + Revert and cleanup some recent overlay changes. + * buffer.h (enum overlay_type): Remove. + (buffer_get_overlays, buffer_set_overlays): Likewise. + (buffer_set_overlays_before, buffer_set_overlays_after): + New function. Adjust users. + (unchain_both): Add eassert. + 2012-08-14 Dmitry Antipov * gtkutil.c (update_frame_tool_bar): Use EQ where appropriate. diff --git a/src/alloc.c b/src/alloc.c index e84be987033..c93fcb564c7 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -5831,8 +5831,8 @@ mark_buffer (struct buffer *buffer) a special way just before the sweep phase, and after stripping some of its elements that are not needed any more. */ - mark_overlay (buffer_get_overlays (buffer, OV_BEFORE)); - mark_overlay (buffer_get_overlays (buffer, OV_AFTER)); + mark_overlay (buffer->overlays_before); + mark_overlay (buffer->overlays_after); /* If this is an indirect buffer, mark its base buffer. */ if (buffer->base_buffer && !VECTOR_MARKED_P (buffer->base_buffer)) diff --git a/src/buffer.c b/src/buffer.c index ffc9daeb9a7..56d6231f5f8 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -474,10 +474,8 @@ clone_per_buffer_values (struct buffer *from, struct buffer *to) memcpy (to->local_flags, from->local_flags, sizeof to->local_flags); - buffer_set_overlays - (to, copy_overlays (to, buffer_get_overlays (from, OV_BEFORE)), OV_BEFORE); - buffer_set_overlays - (to, copy_overlays (to, buffer_get_overlays (from, OV_AFTER)), OV_AFTER); + buffer_set_overlays_before (to, copy_overlays (to, from->overlays_before)); + buffer_set_overlays_after (to, copy_overlays (to, from->overlays_after)); /* Get (a copy of) the alist of Lisp-level local variables of FROM and install that in TO. */ @@ -676,22 +674,22 @@ delete_all_overlays (struct buffer *b) { struct Lisp_Overlay *ov, *next; - for (ov = buffer_get_overlays (b, OV_BEFORE); ov; ov = next) + for (ov = b->overlays_before; ov; ov = next) { drop_overlay (b, ov); next = ov->next; ov->next = NULL; } - for (ov = buffer_get_overlays (b, OV_AFTER); ov; ov = next) + for (ov = b->overlays_after; ov; ov = next) { drop_overlay (b, ov); next = ov->next; ov->next = NULL; } - buffer_set_overlays (b, NULL, OV_BEFORE); - buffer_set_overlays (b, NULL, OV_AFTER); + buffer_set_overlays_before (b, NULL); + buffer_set_overlays_after (b, NULL); } /* Reinitialize everything about a buffer except its name and contents @@ -720,8 +718,8 @@ reset_buffer (register struct buffer *b) b->auto_save_failure_time = 0; BSET (b, auto_save_file_name, Qnil); BSET (b, read_only, Qnil); - buffer_set_overlays (b, NULL, OV_BEFORE); - buffer_set_overlays (b, NULL, OV_AFTER); + buffer_set_overlays_before (b, NULL); + buffer_set_overlays_after (b, NULL); b->overlay_center = BEG; BSET (b, mark_active, Qnil); BSET (b, point_before_scroll, Qnil); @@ -2608,7 +2606,7 @@ overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr, ptrdiff_t prev = BEGV; int inhibit_storing = 0; - for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) + for (tail = current_buffer->overlays_before; tail; tail = tail->next) { ptrdiff_t startpos, endpos; @@ -2656,7 +2654,7 @@ overlays_at (EMACS_INT pos, int extend, Lisp_Object **vec_ptr, next = startpos; } - for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) + for (tail = current_buffer->overlays_after; tail; tail = tail->next) { ptrdiff_t startpos, endpos; @@ -2743,7 +2741,7 @@ overlays_in (EMACS_INT beg, EMACS_INT end, int extend, int inhibit_storing = 0; int end_is_Z = end == Z; - for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) + for (tail = current_buffer->overlays_before; tail; tail = tail->next) { ptrdiff_t startpos, endpos; @@ -2790,7 +2788,7 @@ overlays_in (EMACS_INT beg, EMACS_INT end, int extend, next = startpos; } - for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) + for (tail = current_buffer->overlays_after; tail; tail = tail->next) { ptrdiff_t startpos, endpos; @@ -2880,7 +2878,7 @@ overlay_touches_p (ptrdiff_t pos) Lisp_Object overlay; struct Lisp_Overlay *tail; - for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) + for (tail = current_buffer->overlays_before; tail; tail = tail->next) { ptrdiff_t endpos; @@ -2894,7 +2892,7 @@ overlay_touches_p (ptrdiff_t pos) return 1; } - for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) + for (tail = current_buffer->overlays_after; tail; tail = tail->next) { ptrdiff_t startpos; @@ -3095,7 +3093,7 @@ overlay_strings (ptrdiff_t pos, struct window *w, unsigned char **pstr) overlay_heads.used = overlay_heads.bytes = 0; overlay_tails.used = overlay_tails.bytes = 0; - for (ov = buffer_get_overlays (NULL, OV_BEFORE); ov; ov = ov->next) + for (ov = current_buffer->overlays_before; ov; ov = ov->next) { XSETMISC (overlay, ov); eassert (OVERLAYP (overlay)); @@ -3123,7 +3121,7 @@ overlay_strings (ptrdiff_t pos, struct window *w, unsigned char **pstr) Foverlay_get (overlay, Qpriority), endpos - startpos); } - for (ov = buffer_get_overlays (NULL, OV_AFTER); ov; ov = ov->next) + for (ov = current_buffer->overlays_after; ov; ov = ov->next) { XSETMISC (overlay, ov); eassert (OVERLAYP (overlay)); @@ -3221,7 +3219,7 @@ recenter_overlay_lists (struct buffer *buf, ptrdiff_t pos) But we use it for symmetry and in case that should cease to be true with some future change. */ prev = NULL; - for (tail = buffer_get_overlays (buf, OV_BEFORE); tail; prev = tail, tail = next) + for (tail = buf->overlays_before; tail; prev = tail, tail = next) { next = tail->next; XSETMISC (overlay, tail); @@ -3240,11 +3238,11 @@ recenter_overlay_lists (struct buffer *buf, ptrdiff_t pos) if (prev) prev->next = next; else - buffer_set_overlays (buf, next, OV_BEFORE); + buffer_set_overlays_before (buf, next); /* Search thru overlays_after for where to put it. */ other_prev = NULL; - for (other = buffer_get_overlays (buf, OV_AFTER); other; + for (other = buf->overlays_after; other; other_prev = other, other = other->next) { Lisp_Object otherbeg, otheroverlay; @@ -3262,7 +3260,7 @@ recenter_overlay_lists (struct buffer *buf, ptrdiff_t pos) if (other_prev) other_prev->next = tail; else - buffer_set_overlays (buf, tail, OV_AFTER); + buffer_set_overlays_after (buf, tail); tail = prev; } else @@ -3274,7 +3272,7 @@ recenter_overlay_lists (struct buffer *buf, ptrdiff_t pos) /* See if anything in overlays_after should be in overlays_before. */ prev = NULL; - for (tail = buffer_get_overlays (buf, OV_AFTER); tail; prev = tail, tail = next) + for (tail = buf->overlays_after; tail; prev = tail, tail = next) { next = tail->next; XSETMISC (overlay, tail); @@ -3298,11 +3296,11 @@ recenter_overlay_lists (struct buffer *buf, ptrdiff_t pos) if (prev) prev->next = next; else - buffer_set_overlays (buf, next, OV_AFTER); + buffer_set_overlays_after (buf, next); /* Search thru overlays_before for where to put it. */ other_prev = NULL; - for (other = buffer_get_overlays (buf, OV_BEFORE); other; + for (other = buf->overlays_before; other; other_prev = other, other = other->next) { Lisp_Object otherend, otheroverlay; @@ -3320,7 +3318,7 @@ recenter_overlay_lists (struct buffer *buf, ptrdiff_t pos) if (other_prev) other_prev->next = tail; else - buffer_set_overlays (buf, tail, OV_BEFORE); + buffer_set_overlays_before (buf, tail); tail = prev; } } @@ -3373,7 +3371,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) assigned. */ struct Lisp_Overlay *beforep = NULL, *afterp = NULL; /* 'Parent', likewise, indicates a cons cell or - before or after overlays list, depending + current_buffer->overlays_before or overlays_after, depending which loop we're in. */ struct Lisp_Overlay *tail, *parent; ptrdiff_t startpos, endpos; @@ -3385,7 +3383,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) (after_list) if it is, is still uninitialized. So it's not a bug that before_list isn't initialized, although it may look strange. */ - for (parent = NULL, tail = buffer_get_overlays (NULL, OV_BEFORE); tail;) + for (parent = NULL, tail = current_buffer->overlays_before; tail;) { XSETMISC (overlay, tail); @@ -3425,7 +3423,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) beforep = tail; } if (!parent) - buffer_set_overlays (NULL, tail->next, OV_BEFORE); + buffer_set_overlays_before (current_buffer, tail->next); else parent->next = tail->next; tail = tail->next; @@ -3433,7 +3431,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) else parent = tail, tail = parent->next; } - for (parent = NULL, tail = buffer_get_overlays (NULL, OV_AFTER); tail;) + for (parent = NULL, tail = current_buffer->overlays_after; tail;) { XSETMISC (overlay, tail); @@ -3471,7 +3469,7 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) beforep = tail; } if (!parent) - buffer_set_overlays (NULL, tail->next, OV_AFTER); + buffer_set_overlays_after (current_buffer, tail->next); else parent->next = tail->next; tail = tail->next; @@ -3484,15 +3482,15 @@ fix_start_end_in_overlays (register ptrdiff_t start, register ptrdiff_t end) and let the recenter function make it sane again. */ if (beforep) { - beforep->next = buffer_get_overlays (NULL, OV_BEFORE); - buffer_set_overlays (NULL, before_list, OV_BEFORE); + beforep->next = current_buffer->overlays_before; + buffer_set_overlays_before (current_buffer, before_list); } recenter_overlay_lists (current_buffer, current_buffer->overlay_center); if (afterp) { - afterp->next = buffer_get_overlays (NULL, OV_AFTER); - buffer_set_overlays (NULL, after_list, OV_AFTER); + afterp->next = current_buffer->overlays_after; + buffer_set_overlays_after (current_buffer, after_list); } recenter_overlay_lists (current_buffer, current_buffer->overlay_center); } @@ -3513,8 +3511,7 @@ void fix_overlays_before (struct buffer *bp, ptrdiff_t prev, ptrdiff_t pos) { /* If parent is nil, replace overlays_before; otherwise, parent->next. */ - struct Lisp_Overlay *tail = buffer_get_overlays (bp, OV_BEFORE); - struct Lisp_Overlay *parent = NULL, *right_pair; + struct Lisp_Overlay *tail = bp->overlays_before, *parent = NULL, *right_pair; Lisp_Object tem; ptrdiff_t end IF_LINT (= 0); @@ -3569,8 +3566,8 @@ fix_overlays_before (struct buffer *bp, ptrdiff_t prev, ptrdiff_t pos) and link it into the right place. */ if (!right_pair) { - found->next = buffer_get_overlays (bp, OV_BEFORE); - buffer_set_overlays (bp, found, OV_BEFORE); + found->next = bp->overlays_before; + buffer_set_overlays_before (bp, found); } else { @@ -3646,15 +3643,15 @@ for the rear of the overlay advance when text is inserted there end = OVERLAY_END (overlay); if (OVERLAY_POSITION (end) < b->overlay_center) { - if (buffer_get_overlays (b, OV_AFTER)) - XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_AFTER); - buffer_set_overlays (b, XOVERLAY (overlay), OV_AFTER); + if (b->overlays_after) + XOVERLAY (overlay)->next = b->overlays_after; + buffer_set_overlays_after (b, XOVERLAY (overlay)); } else { - if (buffer_get_overlays (b, OV_BEFORE)) - XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_BEFORE); - buffer_set_overlays (b, XOVERLAY (overlay), OV_BEFORE); + if (b->overlays_before) + XOVERLAY (overlay)->next = b->overlays_before; + buffer_set_overlays_before (b, XOVERLAY (overlay)); } /* This puts it in the right list, and in the right order. */ @@ -3719,10 +3716,9 @@ unchain_both (struct buffer *b, Lisp_Object overlay) { struct Lisp_Overlay *ov = XOVERLAY (overlay); - buffer_set_overlays - (b, unchain_overlay (buffer_get_overlays (b, OV_BEFORE), ov), OV_BEFORE); - buffer_set_overlays - (b, unchain_overlay (buffer_get_overlays (b, OV_AFTER), ov), OV_AFTER); + buffer_set_overlays_before (b, unchain_overlay (b->overlays_before, ov)); + buffer_set_overlays_after (b, unchain_overlay (b->overlays_after, ov)); + eassert (XOVERLAY (overlay)->next == NULL); } DEFUN ("move-overlay", Fmove_overlay, Smove_overlay, 3, 4, 0, @@ -3776,7 +3772,6 @@ buffer. */) o_end = OVERLAY_POSITION (OVERLAY_END (overlay)); unchain_both (ob, overlay); - eassert (XOVERLAY (overlay)->next == NULL); } /* Set the overlay boundaries, which may clip them. */ @@ -3816,13 +3811,13 @@ buffer. */) wrong list. */ if (n_end < b->overlay_center) { - XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_AFTER); - buffer_set_overlays (b, XOVERLAY (overlay), OV_AFTER); + XOVERLAY (overlay)->next = b->overlays_after; + buffer_set_overlays_after (b, XOVERLAY (overlay)); } else { - XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_BEFORE); - buffer_set_overlays (b, XOVERLAY (overlay), OV_BEFORE); + XOVERLAY (overlay)->next = b->overlays_before; + buffer_set_overlays_before (b, XOVERLAY (overlay)); } /* This puts it in the right list, and in the right order. */ @@ -3849,8 +3844,6 @@ DEFUN ("delete-overlay", Fdelete_overlay, Sdelete_overlay, 1, 1, 0, specbind (Qinhibit_quit, Qt); unchain_both (b, overlay); - eassert (XOVERLAY (overlay)->next == NULL); - drop_overlay (b, XOVERLAY (overlay)); /* When deleting an overlay with before or after strings, turn off @@ -4048,13 +4041,12 @@ However, the overlays you get are the real objects that the buffer uses. */) struct Lisp_Overlay *ol; Lisp_Object before = Qnil, after = Qnil, tmp; - for (ol = buffer_get_overlays (NULL, OV_BEFORE); ol; ol = ol->next) + for (ol = current_buffer->overlays_before; ol; ol = ol->next) { XSETMISC (tmp, ol); before = Fcons (tmp, before); } - - for (ol = buffer_get_overlays (NULL, OV_AFTER); ol; ol = ol->next) + for (ol = current_buffer->overlays_after; ol; ol = ol->next) { XSETMISC (tmp, ol); after = Fcons (tmp, after); @@ -4199,7 +4191,7 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, int after, /* We are being called before a change. Scan the overlays to find the functions to call. */ last_overlay_modification_hooks_used = 0; - for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) + for (tail = current_buffer->overlays_before; tail; tail = tail->next) { ptrdiff_t startpos, endpos; Lisp_Object ostart, oend; @@ -4236,7 +4228,7 @@ report_overlay_modification (Lisp_Object start, Lisp_Object end, int after, } } - for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) + for (tail = current_buffer->overlays_after; tail; tail = tail->next) { ptrdiff_t startpos, endpos; Lisp_Object ostart, oend; @@ -4328,7 +4320,7 @@ evaporate_overlays (ptrdiff_t pos) hit_list = Qnil; if (pos <= current_buffer->overlay_center) - for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) + for (tail = current_buffer->overlays_before; tail; tail = tail->next) { ptrdiff_t endpos; XSETMISC (overlay, tail); @@ -4340,7 +4332,7 @@ evaporate_overlays (ptrdiff_t pos) hit_list = Fcons (overlay, hit_list); } else - for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) + for (tail = current_buffer->overlays_after; tail; tail = tail->next) { ptrdiff_t startpos; XSETMISC (overlay, tail); @@ -4946,8 +4938,8 @@ init_buffer_once (void) BSET (&buffer_defaults, mark_active, Qnil); BSET (&buffer_defaults, file_format, Qnil); BSET (&buffer_defaults, auto_save_file_format, Qt); - buffer_defaults.overlays_before = NULL; - buffer_defaults.overlays_after = NULL; + buffer_set_overlays_before (&buffer_defaults, NULL); + buffer_set_overlays_after (&buffer_defaults, NULL); buffer_defaults.overlay_center = BEG; XSETFASTINT (BVAR (&buffer_defaults, tab_width), 8); diff --git a/src/buffer.h b/src/buffer.h index 286c20d9e9c..7a6bddee5ec 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -946,52 +946,6 @@ extern void mmap_set_vars (int); } \ } while (0) -enum overlay_type -{ - OV_BEFORE, - OV_AFTER -}; - -/* Get overlay list of type T and belonging to B. */ - -BUFFER_INLINE struct Lisp_Overlay * -buffer_get_overlays (struct buffer *b, enum overlay_type t) -{ - if (!b) - b = current_buffer; - if (t == OV_BEFORE) - return b->overlays_before; - else if (t == OV_AFTER) - return b->overlays_after; - else - abort (); -} - -/* Set overlay list of type T as belonging to B. */ - -BUFFER_INLINE void -buffer_set_overlays (struct buffer *b, struct Lisp_Overlay *o, - enum overlay_type t) -{ - if (!b) - b = current_buffer; - if (t == OV_BEFORE) - b->overlays_before = o; - else if (t == OV_AFTER) - b->overlays_after = o; - else - abort (); -} - -/* Non-zero if current buffer has overlays. */ - -BUFFER_INLINE int -buffer_has_overlays (void) -{ - return buffer_get_overlays (current_buffer, OV_BEFORE) - || buffer_get_overlays (current_buffer, OV_AFTER); -} - extern Lisp_Object Qbefore_change_functions; extern Lisp_Object Qafter_change_functions; extern Lisp_Object Qfirst_change_hook; @@ -1014,6 +968,28 @@ buffer_set_intervals (struct buffer *b, INTERVAL i) b->text->intervals = i; } +/* Set an appropriate overlay of B. */ + +BUFFER_INLINE void +buffer_set_overlays_before (struct buffer *b, struct Lisp_Overlay *o) +{ + b->overlays_before = o; +} + +BUFFER_INLINE void +buffer_set_overlays_after (struct buffer *b, struct Lisp_Overlay *o) +{ + b->overlays_after = o; +} + +/* Non-zero if current buffer has overlays. */ + +BUFFER_INLINE int +buffer_has_overlays (void) +{ + return current_buffer->overlays_before || current_buffer->overlays_after; +} + /* Return character code of multi-byte form at byte position POS. If POS doesn't point the head of valid multi-byte form, only the byte at POS is returned. No range checking. diff --git a/src/editfns.c b/src/editfns.c index 60f61d0b431..c76009a099c 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -310,7 +310,7 @@ overlays_around (EMACS_INT pos, Lisp_Object *vec, ptrdiff_t len) ptrdiff_t startpos, endpos; ptrdiff_t idx = 0; - for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) + for (tail = current_buffer->overlays_before; tail; tail = tail->next) { XSETMISC (overlay, tail); @@ -329,7 +329,7 @@ overlays_around (EMACS_INT pos, Lisp_Object *vec, ptrdiff_t len) } } - for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) + for (tail = current_buffer->overlays_after; tail; tail = tail->next) { XSETMISC (overlay, tail); diff --git a/src/fileio.c b/src/fileio.c index 4fdc902a9a2..eba157ea042 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -3490,8 +3490,8 @@ variable `last-coding-system-used' to the coding system actually used. */) BSET (buf, read_only, Qnil); BSET (buf, filename, Qnil); BSET (buf, undo_list, Qt); - eassert (buffer_get_overlays (buf, OV_BEFORE) == NULL); - eassert (buffer_get_overlays (buf, OV_AFTER) == NULL); + eassert (buf->overlays_before == NULL); + eassert (buf->overlays_after == NULL); set_buffer_internal (buf); Ferase_buffer (); diff --git a/src/print.c b/src/print.c index 0938dd6e9ae..23ad6c0a256 100644 --- a/src/print.c +++ b/src/print.c @@ -498,10 +498,10 @@ temp_output_buffer_setup (const char *bufname) BSET (current_buffer, read_only, Qnil); BSET (current_buffer, filename, Qnil); BSET (current_buffer, undo_list, Qt); - eassert (buffer_get_overlays (NULL, OV_BEFORE) == NULL); - eassert (buffer_get_overlays (NULL, OV_AFTER) == NULL); + eassert (current_buffer->overlays_before == NULL); + eassert (current_buffer->overlays_after == NULL); BSET (current_buffer, enable_multibyte_characters, - BVAR (&buffer_defaults, enable_multibyte_characters)); + BVAR (&buffer_defaults, enable_multibyte_characters)); specbind (Qinhibit_read_only, Qt); specbind (Qinhibit_modification_hooks, Qt); Ferase_buffer (); diff --git a/src/xdisp.c b/src/xdisp.c index 58956842796..4cd95606041 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -5445,7 +5445,7 @@ load_overlay_strings (struct it *it, ptrdiff_t charpos) while (0) /* Process overlay before the overlay center. */ - for (ov = buffer_get_overlays (NULL, OV_BEFORE); ov; ov = ov->next) + for (ov = current_buffer->overlays_before; ov; ov = ov->next) { XSETMISC (overlay, ov); eassert (OVERLAYP (overlay)); @@ -5485,7 +5485,7 @@ load_overlay_strings (struct it *it, ptrdiff_t charpos) } /* Process overlays after the overlay center. */ - for (ov = buffer_get_overlays (NULL, OV_AFTER); ov; ov = ov->next) + for (ov = current_buffer->overlays_after; ov; ov = ov->next) { XSETMISC (overlay, ov); eassert (OVERLAYP (overlay)); -- 2.39.2