diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2020-08-15 10:48:37 -0700 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-08-15 11:19:51 -0700 |
| commit | e97def2bbce7777d3afc916a5aa4d951fab5f3f4 (patch) | |
| tree | 7fe9ccffbea437d39e56da8c5023d9f106d8c7be /src | |
| parent | f1b06fd5fc66377f85b420d3d40c666da9dca2a5 (diff) | |
Fdelete speed tweak for strings
* src/fns.c (Fdelete): Hoist FIXNUMP out of a loop,
and turn it into CHARACTERP.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/fns.c b/src/fns.c index ded6f344aad..c89bd8144e7 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; |
