[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,