From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] /srv/bzr/emacs/trunk r109512: Inline functions to examine and change buffer overlays. Date: Wed, 08 Aug 2012 11:45:16 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1344440733 12039 80.91.229.3 (8 Aug 2012 15:45:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 8 Aug 2012 15:45:33 +0000 (UTC) Cc: emacs-devel@gnu.org To: Dmitry Antipov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Aug 08 17:45:33 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Sz8Ru-0004Ce-H6 for ged-emacs-devel@m.gmane.org; Wed, 08 Aug 2012 17:45:30 +0200 Original-Received: from localhost ([::1]:50816 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sz8Rt-0005Gk-R4 for ged-emacs-devel@m.gmane.org; Wed, 08 Aug 2012 11:45:29 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:35113) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sz8Rp-0005Gc-Qj for emacs-devel@gnu.org; Wed, 08 Aug 2012 11:45:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sz8Rj-0002So-Pu for emacs-devel@gnu.org; Wed, 08 Aug 2012 11:45:25 -0400 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:19663) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sz8Rj-0002Sb-Dy for emacs-devel@gnu.org; Wed, 08 Aug 2012 11:45:19 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EAG6Zu09Ld/LR/2dsb2JhbABEtBGBCIIVAQEBAQIBAQEBFw0vGAsFCwsOJgcLFBMBBA0kE4gAAwYFC7l6BJBEA5J2kD2BWIMF X-IronPort-AV: E=Sophos;i="4.75,637,1330923600"; d="scan'208";a="195280054" Original-Received: from 75-119-242-209.dsl.teksavvy.com (HELO pastel.home) ([75.119.242.209]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 08 Aug 2012 11:45:17 -0400 Original-Received: by pastel.home (Postfix, from userid 20848) id 17DDB599B1; Wed, 8 Aug 2012 11:45:17 -0400 (EDT) In-Reply-To: (Dmitry Antipov's message of "Wed, 08 Aug 2012 18:47:11 +0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.182 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:152339 Archived-At: Can we pause for a moment? As I mentioned to you earlier, you should post such patches for review before installing them. And explain why you think they're good. E.g. replacing buffer->overlays_before by "buffer_get_overlays (buffer, OV_BEFORE)" is far from "obviously good" in my eyes. If you intend to make those field accesses into something more complex, then please say so and explain why. If not, then please stick to "foo->bar", as agreed for the FGET case. Stefan >>>>> "Dmitry" == Dmitry Antipov writes: > ------------------------------------------------------------ > revno: 109512 > committer: Dmitry Antipov > branch nick: trunk > timestamp: Wed 2012-08-08 18:47:11 +0400 > message: > Inline functions to examine and change buffer overlays. > * buffer.c (unchain_both): New function. > * buffer.h (buffer_get_overlays, buffer_set_overlays): > (buffer_has_overlays): New function. > (enum overlay_type): New enum. > * alloc.c, buffer.c, editfns.c, fileio.c, indent.c: > * insdel.c, intervals.c, print.c, xdisp.c: Adjust users. > modified: > src/ChangeLog > src/alloc.c > src/buffer.c > src/buffer.h > src/editfns.c > src/fileio.c > src/indent.c > src/insdel.c > src/intervals.c > src/print.c > src/xdisp.c > === modified file 'src/ChangeLog' > --- a/src/ChangeLog 2012-08-08 12:12:40 +0000 > +++ b/src/ChangeLog 2012-08-08 14:47:11 +0000 > @@ -1,5 +1,15 @@ > 2012-08-08 Dmitry Antipov > + Inline functions to examine and change buffer overlays. > + * buffer.c (unchain_both): New function. > + * buffer.h (buffer_get_overlays, buffer_set_overlays): > + (buffer_has_overlays): New function. > + (enum overlay_type): New enum. > + * alloc.c, buffer.c, editfns.c, fileio.c, indent.c: > + * insdel.c, intervals.c, print.c, xdisp.c: Adjust users. > + > +2012-08-08 Dmitry Antipov > + > Inline functions to examine and change buffer intervals. > * alloc.c (mark_interval_tree): Remove. > (MARK_INTERVAL_TREE): Simplify. > === modified file 'src/alloc.c' > --- a/src/alloc.c 2012-08-08 12:12:40 +0000 > +++ b/src/alloc.c 2012-08-08 14:47:11 +0000 > @@ -5831,8 +5831,8 @@ > a special way just before the sweep phase, and after stripping > some of its elements that are not needed any more. */ > - mark_overlay (buffer->overlays_before); > - mark_overlay (buffer->overlays_after); > + mark_overlay (buffer_get_overlays (buffer, OV_BEFORE)); > + mark_overlay (buffer_get_overlays (buffer, OV_AFTER)); > /* If this is an indirect buffer, mark its base buffer. */ > if (buffer->base_buffer && !VECTOR_MARKED_P (buffer->base_buffer)) > === modified file 'src/buffer.c' > --- a/src/buffer.c 2012-08-08 12:12:40 +0000 > +++ b/src/buffer.c 2012-08-08 14:47:11 +0000 > @@ -474,8 +474,10 @@ > memcpy (to->local_flags, from->local_flags, sizeof to->local_flags); > - to->overlays_before = copy_overlays (to, from->overlays_before); > - to->overlays_after = copy_overlays (to, from->overlays_after); > + 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); > /* Get (a copy of) the alist of Lisp-level local variables of FROM > and install that in TO. */ > @@ -674,21 +676,22 @@ > { > struct Lisp_Overlay *ov, *next; > - for (ov = b->overlays_before; ov; ov = next) > - { > - drop_overlay (b, ov); > - next = ov->next; > - ov->next = NULL; > - } > - > - for (ov = b->overlays_after; ov; ov = next) > - { > - drop_overlay (b, ov); > - next = ov->next; > - ov->next = NULL; > - } > - > - b->overlays_before = b->overlays_after = NULL; > + for (ov = buffer_get_overlays (b, OV_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) > + { > + drop_overlay (b, ov); > + next = ov->next; > + ov->next = NULL; > + } > + > + buffer_set_overlays (b, NULL, OV_BEFORE); > + buffer_set_overlays (b, NULL, OV_AFTER); > } > /* Reinitialize everything about a buffer except its name and contents > @@ -716,8 +719,8 @@ b-> auto_save_failure_time = 0; > BVAR (b, auto_save_file_name) = Qnil; > BVAR (b, read_only) = Qnil; > - b->overlays_before = NULL; > - b->overlays_after = NULL; > + buffer_set_overlays (b, NULL, OV_BEFORE); > + buffer_set_overlays (b, NULL, OV_AFTER); b-> overlay_center = BEG; > BVAR (b, mark_active) = Qnil; > BVAR (b, point_before_scroll) = Qnil; > @@ -2602,7 +2605,7 @@ > ptrdiff_t prev = BEGV; > int inhibit_storing = 0; > - for (tail = current_buffer->overlays_before; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > @@ -2650,7 +2653,7 @@ > next = startpos; > } > - for (tail = current_buffer->overlays_after; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > @@ -2737,7 +2740,7 @@ > int inhibit_storing = 0; > int end_is_Z = end == Z; > - for (tail = current_buffer->overlays_before; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > @@ -2784,7 +2787,7 @@ > next = startpos; > } > - for (tail = current_buffer->overlays_after; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > @@ -2874,7 +2877,7 @@ > Lisp_Object overlay; > struct Lisp_Overlay *tail; > - for (tail = current_buffer->overlays_before; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) > { > ptrdiff_t endpos; > @@ -2888,7 +2891,7 @@ > return 1; > } > - for (tail = current_buffer->overlays_after; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) > { > ptrdiff_t startpos; > @@ -3089,7 +3092,7 @@ > overlay_heads.used = overlay_heads.bytes = 0; > overlay_tails.used = overlay_tails.bytes = 0; > - for (ov = current_buffer->overlays_before; ov; ov = ov->next) > + for (ov = buffer_get_overlays (NULL, OV_BEFORE); ov; ov = ov->next) > { > XSETMISC (overlay, ov); > eassert (OVERLAYP (overlay)); > @@ -3117,7 +3120,7 @@ > Foverlay_get (overlay, Qpriority), > endpos - startpos); > } > - for (ov = current_buffer->overlays_after; ov; ov = ov->next) > + for (ov = buffer_get_overlays (NULL, OV_AFTER); ov; ov = ov->next) > { > XSETMISC (overlay, ov); > eassert (OVERLAYP (overlay)); > @@ -3215,7 +3218,7 @@ > But we use it for symmetry and in case that should cease to be true > with some future change. */ > prev = NULL; > - for (tail = buf->overlays_before; tail; prev = tail, tail = next) > + for (tail = buffer_get_overlays (buf, OV_BEFORE); tail; prev = tail, tail = next) > { > next = tail->next; > XSETMISC (overlay, tail); > @@ -3234,11 +3237,11 @@ > if (prev) prev-> next = next; > else > - buf->overlays_before = next; > + buffer_set_overlays (buf, next, OV_BEFORE); > /* Search thru overlays_after for where to put it. */ > other_prev = NULL; > - for (other = buf->overlays_after; other; > + for (other = buffer_get_overlays (buf, OV_AFTER); other; > other_prev = other, other = other->next) > { > Lisp_Object otherbeg, otheroverlay; > @@ -3256,7 +3259,7 @@ > if (other_prev) other_prev-> next = tail; > else > - buf->overlays_after = tail; > + buffer_set_overlays (buf, tail, OV_AFTER); > tail = prev; > } > else > @@ -3268,7 +3271,7 @@ > /* See if anything in overlays_after should be in overlays_before. */ > prev = NULL; > - for (tail = buf->overlays_after; tail; prev = tail, tail = next) > + for (tail = buffer_get_overlays (buf, OV_AFTER); tail; prev = tail, tail = next) > { > next = tail->next; > XSETMISC (overlay, tail); > @@ -3292,11 +3295,11 @@ > if (prev) prev-> next = next; > else > - buf->overlays_after = next; > + buffer_set_overlays (buf, next, OV_AFTER); > /* Search thru overlays_before for where to put it. */ > other_prev = NULL; > - for (other = buf->overlays_before; other; > + for (other = buffer_get_overlays (buf, OV_BEFORE); other; > other_prev = other, other = other->next) > { > Lisp_Object otherend, otheroverlay; > @@ -3314,7 +3317,7 @@ > if (other_prev) other_prev-> next = tail; > else > - buf->overlays_before = tail; > + buffer_set_overlays (buf, tail, OV_BEFORE); > tail = prev; > } > } > @@ -3367,7 +3370,7 @@ > assigned. */ > struct Lisp_Overlay *beforep = NULL, *afterp = NULL; > /* 'Parent', likewise, indicates a cons cell or > - current_buffer->overlays_before or overlays_after, depending > + before or after overlays list, depending > which loop we're in. */ > struct Lisp_Overlay *tail, *parent; > ptrdiff_t startpos, endpos; > @@ -3379,7 +3382,7 @@ > (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 = current_buffer->overlays_before; tail;) > + for (parent = NULL, tail = buffer_get_overlays (NULL, OV_BEFORE); tail;) > { > XSETMISC (overlay, tail); > @@ -3419,7 +3422,7 @@ > beforep = tail; > } > if (!parent) > - current_buffer->overlays_before = tail->next; > + buffer_set_overlays (NULL, tail->next, OV_BEFORE); > else parent-> next = tail->next; > tail = tail->next; > @@ -3427,7 +3430,7 @@ > else > parent = tail, tail = parent->next; > } > - for (parent = NULL, tail = current_buffer->overlays_after; tail;) > + for (parent = NULL, tail = buffer_get_overlays (NULL, OV_AFTER); tail;) > { > XSETMISC (overlay, tail); > @@ -3465,7 +3468,7 @@ > beforep = tail; > } > if (!parent) > - current_buffer->overlays_after = tail->next; > + buffer_set_overlays (NULL, tail->next, OV_AFTER); > else parent-> next = tail->next; > tail = tail->next; > @@ -3478,15 +3481,15 @@ > and let the recenter function make it sane again. */ > if (beforep) > { > - beforep->next = current_buffer->overlays_before; > - current_buffer->overlays_before = before_list; > + beforep->next = buffer_get_overlays (NULL, OV_BEFORE); > + buffer_set_overlays (NULL, before_list, OV_BEFORE); > } > recenter_overlay_lists (current_buffer, current_buffer->overlay_center); > if (afterp) > { > - afterp->next = current_buffer->overlays_after; > - current_buffer->overlays_after = after_list; > + afterp->next = buffer_get_overlays (NULL, OV_AFTER); > + buffer_set_overlays (NULL, after_list, OV_AFTER); > } > recenter_overlay_lists (current_buffer, current_buffer->overlay_center); > } > @@ -3507,7 +3510,8 @@ > 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 = bp->overlays_before, *parent = NULL, *right_pair; > + struct Lisp_Overlay *tail = buffer_get_overlays (bp, OV_BEFORE); > + struct Lisp_Overlay *parent = NULL, *right_pair; > Lisp_Object tem; > ptrdiff_t end IF_LINT (= 0); > @@ -3562,8 +3566,8 @@ > and link it into the right place. */ > if (!right_pair) > { > - found->next = bp->overlays_before; > - bp->overlays_before = found; > + found->next = buffer_get_overlays (bp, OV_BEFORE); > + buffer_set_overlays (bp, found, OV_BEFORE); > } > else > { > @@ -3639,15 +3643,15 @@ > end = OVERLAY_END (overlay); > if (OVERLAY_POSITION (end) < b->overlay_center) > { > - if (b->overlays_after) > - XOVERLAY (overlay)->next = b->overlays_after; > - b->overlays_after = XOVERLAY (overlay); > + if (buffer_get_overlays (b, OV_AFTER)) > + XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_AFTER); > + buffer_set_overlays (b, XOVERLAY (overlay), OV_AFTER); > } > else > { > - if (b->overlays_before) > - XOVERLAY (overlay)->next = b->overlays_before; > - b->overlays_before = XOVERLAY (overlay); > + if (buffer_get_overlays (b, OV_BEFORE)) > + XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_BEFORE); > + buffer_set_overlays (b, XOVERLAY (overlay), OV_BEFORE); > } > /* This puts it in the right list, and in the right order. */ > @@ -3705,6 +3709,19 @@ > return list; > } > +/* Remove OVERLAY from both overlay lists of B. */ > + > +static void > +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); > +} > + > DEFUN ("move-overlay", Fmove_overlay, Smove_overlay, 3, 4, 0, > doc: /* Set the endpoints of OVERLAY to BEG and END in BUFFER. > If BUFFER is omitted, leave OVERLAY in the same buffer it inhabits now. > @@ -3755,10 +3772,7 @@ > o_beg = OVERLAY_POSITION (OVERLAY_START (overlay)); > o_end = OVERLAY_POSITION (OVERLAY_END (overlay)); > - ob->overlays_before = > - unchain_overlay (ob->overlays_before, XOVERLAY (overlay)); > - ob->overlays_after = > - unchain_overlay (ob->overlays_after, XOVERLAY (overlay)); > + unchain_both (ob, overlay); > eassert (XOVERLAY (overlay)->next == NULL); > } > @@ -3799,13 +3813,13 @@ > wrong list. */ > if (n_end < b->overlay_center) > { > - XOVERLAY (overlay)->next = b->overlays_after; > - b->overlays_after = XOVERLAY (overlay); > + XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_AFTER); > + buffer_set_overlays (b, XOVERLAY (overlay), OV_AFTER); > } > else > { > - XOVERLAY (overlay)->next = b->overlays_before; > - b->overlays_before = XOVERLAY (overlay); > + XOVERLAY (overlay)->next = buffer_get_overlays (b, OV_BEFORE); > + buffer_set_overlays (b, XOVERLAY (overlay), OV_BEFORE); > } > /* This puts it in the right list, and in the right order. */ > @@ -3831,10 +3845,7 @@ > b = XBUFFER (buffer); > specbind (Qinhibit_quit, Qt); > - b->overlays_before > - = unchain_overlay (b->overlays_before, XOVERLAY (overlay)); > - b->overlays_after > - = unchain_overlay (b->overlays_after, XOVERLAY (overlay)); > + unchain_both (b, overlay); > eassert (XOVERLAY (overlay)->next == NULL); > drop_overlay (b, XOVERLAY (overlay)); > @@ -4033,16 +4044,19 @@ > { > struct Lisp_Overlay *ol; > Lisp_Object before = Qnil, after = Qnil, tmp; > - for (ol = current_buffer->overlays_before; ol; ol = ol->next) > + > + for (ol = buffer_get_overlays (NULL, OV_BEFORE); ol; ol = ol->next) > { > XSETMISC (tmp, ol); > before = Fcons (tmp, before); > } > - for (ol = current_buffer->overlays_after; ol; ol = ol->next) > + > + for (ol = buffer_get_overlays (NULL, OV_AFTER); ol; ol = ol->next) > { > XSETMISC (tmp, ol); > after = Fcons (tmp, after); > } > + > return Fcons (Fnreverse (before), Fnreverse (after)); > } > @@ -4182,7 +4196,7 @@ > /* We are being called before a change. > Scan the overlays to find the functions to call. */ > last_overlay_modification_hooks_used = 0; > - for (tail = current_buffer->overlays_before; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > Lisp_Object ostart, oend; > @@ -4219,7 +4233,7 @@ > } > } > - for (tail = current_buffer->overlays_after; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > Lisp_Object ostart, oend; > @@ -4311,7 +4325,7 @@ > hit_list = Qnil; > if (pos <= current_buffer->overlay_center) > - for (tail = current_buffer->overlays_before; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) > { > ptrdiff_t endpos; > XSETMISC (overlay, tail); > @@ -4323,7 +4337,7 @@ > hit_list = Fcons (overlay, hit_list); > } > else > - for (tail = current_buffer->overlays_after; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) > { > ptrdiff_t startpos; > XSETMISC (overlay, tail); > === modified file 'src/buffer.h' > --- a/src/buffer.h 2012-08-08 12:12:40 +0000 > +++ b/src/buffer.h 2012-08-08 14:47:11 +0000 > @@ -945,6 +945,52 @@ > } \ > } 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; > === modified file 'src/editfns.c' > --- a/src/editfns.c 2012-08-08 12:12:40 +0000 > +++ b/src/editfns.c 2012-08-08 14:47:11 +0000 > @@ -310,7 +310,7 @@ > ptrdiff_t startpos, endpos; > ptrdiff_t idx = 0; > - for (tail = current_buffer->overlays_before; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_BEFORE); tail; tail = tail->next) > { > XSETMISC (overlay, tail); > @@ -329,7 +329,7 @@ > } > } > - for (tail = current_buffer->overlays_after; tail; tail = tail->next) > + for (tail = buffer_get_overlays (NULL, OV_AFTER); tail; tail = tail->next) > { > XSETMISC (overlay, tail); > === modified file 'src/fileio.c' > --- a/src/fileio.c 2012-08-08 12:12:40 +0000 > +++ b/src/fileio.c 2012-08-08 14:47:11 +0000 > @@ -3490,8 +3490,8 @@ > BVAR (buf, read_only) = Qnil; > BVAR (buf, filename) = Qnil; > BVAR (buf, undo_list) = Qt; > - eassert (buf->overlays_before == NULL); > - eassert (buf->overlays_after == NULL); > + eassert (buffer_get_overlays (buf, OV_BEFORE) == NULL); > + eassert (buffer_get_overlays (buf, OV_AFTER) == NULL); > set_buffer_internal (buf); > Ferase_buffer (); > === modified file 'src/indent.c' > --- a/src/indent.c 2012-08-08 12:12:40 +0000 > +++ b/src/indent.c 2012-08-08 14:47:11 +0000 > @@ -337,8 +337,7 @@ > /* If the buffer has overlays, text properties, > or multibyte characters, use a more general algorithm. */ > if (buffer_get_intervals (current_buffer) > - || current_buffer->overlays_before > - || current_buffer->overlays_after > + || buffer_has_overlays () > || Z != Z_BYTE) > return current_column_1 (); > === modified file 'src/insdel.c' > --- a/src/insdel.c 2012-08-08 12:12:40 +0000 > +++ b/src/insdel.c 2012-08-08 14:47:11 +0000 > @@ -1993,7 +1993,7 @@ > XSETCDR (rvoe_arg, Qt); > } > - if (current_buffer->overlays_before || current_buffer->overlays_after) > + if (buffer_has_overlays ()) > { > PRESERVE_VALUE; > report_overlay_modification (FETCH_START, FETCH_END, 0, > @@ -2029,8 +2029,7 @@ > just record the args that we were going to use. */ > if (! NILP (Vcombine_after_change_calls) > && NILP (Vbefore_change_functions) > - && !current_buffer->overlays_before > - && !current_buffer->overlays_after) > + && !buffer_has_overlays ()) > { > Lisp_Object elt; > @@ -2072,7 +2071,7 @@ > XSETCDR (rvoe_arg, Qt); > } > - if (current_buffer->overlays_before || current_buffer->overlays_after) > + if (buffer_has_overlays ()) > report_overlay_modification (make_number (charpos), > make_number (charpos + lenins), > 1, > === modified file 'src/intervals.c' > --- a/src/intervals.c 2012-08-08 12:12:40 +0000 > +++ b/src/intervals.c 2012-08-08 14:47:11 +0000 > @@ -1870,8 +1870,7 @@ > whether or not there are intervals in the buffer. */ > eassert (charpos <= ZV && charpos >= BEGV); > - have_overlays = (current_buffer->overlays_before > - || current_buffer->overlays_after); > + have_overlays = buffer_has_overlays (); > /* If we have no text properties and overlays, > then we can do it quickly. */ > === modified file 'src/print.c' > --- a/src/print.c 2012-08-08 10:23:04 +0000 > +++ b/src/print.c 2012-08-08 14:47:11 +0000 > @@ -498,8 +498,8 @@ > BVAR (current_buffer, read_only) = Qnil; > BVAR (current_buffer, filename) = Qnil; > BVAR (current_buffer, undo_list) = Qt; > - eassert (current_buffer->overlays_before == NULL); > - eassert (current_buffer->overlays_after == NULL); > + eassert (buffer_get_overlays (NULL, OV_BEFORE) == NULL); > + eassert (buffer_get_overlays (NULL, OV_AFTER) == NULL); > BVAR (current_buffer, enable_multibyte_characters) > = BVAR (&buffer_defaults, enable_multibyte_characters); > specbind (Qinhibit_read_only, Qt); > === modified file 'src/xdisp.c' > --- a/src/xdisp.c 2012-08-08 06:11:29 +0000 > +++ b/src/xdisp.c 2012-08-08 14:47:11 +0000 > @@ -5445,7 +5445,7 @@ > while (0) > /* Process overlay before the overlay center. */ > - for (ov = current_buffer->overlays_before; ov; ov = ov->next) > + for (ov = buffer_get_overlays (NULL, OV_BEFORE); ov; ov = ov->next) > { > XSETMISC (overlay, ov); > eassert (OVERLAYP (overlay)); > @@ -5485,7 +5485,7 @@ > } > /* Process overlays after the overlay center. */ > - for (ov = current_buffer->overlays_after; ov; ov = ov->next) > + for (ov = buffer_get_overlays (NULL, OV_AFTER); ov; ov = ov->next) > { > XSETMISC (overlay, ov); > eassert (OVERLAYP (overlay)); > _______________________________________________ > Emacs-diffs mailing list > Emacs-diffs@gnu.org > https://lists.gnu.org/mailman/listinfo/emacs-diffs