emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master cd0855cbd81 3/5: Make object-intervals linear instead of quadrati


From: Mattias Engdegård
Subject: master cd0855cbd81 3/5: Make object-intervals linear instead of quadratic
Date: Sun, 14 Jan 2024 08:17:49 -0500 (EST)

branch: master
commit cd0855cbd81b5fd3866c9a3242f0490c938b6d4d
Author: Mattias Engdegård <mattiase@acm.org>
Commit: Mattias Engdegård <mattiase@acm.org>

    Make object-intervals linear instead of quadratic
    
    * src/fns.c (collect_interval, Fobject_intervals):
    Build the returned list in reverse instead of appending single
    elements.
---
 src/fns.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/fns.c b/src/fns.c
index 07bb5115b6c..acfedbfa922 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -5255,11 +5255,11 @@ static void
 collect_interval (INTERVAL interval, void *arg)
 {
   Lisp_Object *collector = arg;
-  *collector =
-    nconc2 (*collector,
-           list1(list3 (make_fixnum (interval->position),
-                        make_fixnum (interval->position + LENGTH (interval)),
-                        interval->plist)));
+  *collector = Fcons (list3 (make_fixnum (interval->position),
+                            make_fixnum (interval->position
+                                         + LENGTH (interval)),
+                            interval->plist),
+                     *collector);
 }
 
 
@@ -6312,7 +6312,6 @@ Altering this copy does not change the layout of the text 
properties
 in OBJECT.  */)
   (register Lisp_Object object)
 {
-  Lisp_Object collector = Qnil;
   INTERVAL intervals;
 
   if (STRINGP (object))
@@ -6325,8 +6324,9 @@ in OBJECT.  */)
   if (! intervals)
     return Qnil;
 
+  Lisp_Object collector = Qnil;
   traverse_intervals (intervals, 0, collect_interval, &collector);
-  return collector;
+  return Fnreverse (collector);
 }
 
 DEFUN ("line-number-at-pos", Fline_number_at_pos,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]