emacs-diffs
[Top][All Lists]
Advanced

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



reply via email to

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