[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master e97def2 3/4: Fdelete speed tweak for strings
From: |
Paul Eggert |
Subject: |
master e97def2 3/4: Fdelete speed tweak for strings |
Date: |
Sat, 15 Aug 2020 14:19:59 -0400 (EDT) |
branch: master
commit e97def2bbce7777d3afc916a5aa4d951fab5f3f4
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>
Fdelete speed tweak for strings
* src/fns.c (Fdelete): Hoist FIXNUMP out of a loop,
and turn it into CHARACTERP.
---
src/fns.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/fns.c b/src/fns.c
index ded6f34..c89bd81 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1766,6 +1766,9 @@ changing the value of a sequence `foo'. */)
}
else if (STRINGP (seq))
{
+ if (!CHARACTERP (elt))
+ return seq;
+
ptrdiff_t i, ibyte, nchars, nbytes, cbytes;
int c;
@@ -1784,7 +1787,7 @@ changing the value of a sequence `foo'. */)
cbytes = 1;
}
- if (!FIXNUMP (elt) || c != XFIXNUM (elt))
+ if (c != XFIXNUM (elt))
{
++nchars;
nbytes += cbytes;
@@ -1814,7 +1817,7 @@ changing the value of a sequence `foo'. */)
cbytes = 1;
}
- if (!FIXNUMP (elt) || c != XFIXNUM (elt))
+ if (c != XFIXNUM (elt))
{
unsigned char *from = SDATA (seq) + ibyte;
unsigned char *to = SDATA (tem) + nbytes;