diff options
| author | Paul Eggert | 2020-04-26 19:30:37 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-04-26 19:31:54 -0700 |
| commit | 08408b13faa911b586ac0c181159ada452a942cc (patch) | |
| tree | 1743fb97325f7c03b23ccfe6ab8a90d23e3d11c1 /src | |
| parent | ed2def7d5e423388ca75c6e10fd7b42e0c4789c7 (diff) | |
| download | emacs-08408b13faa911b586ac0c181159ada452a942cc.tar.gz emacs-08408b13faa911b586ac0c181159ada452a942cc.zip | |
Simplify string-to-char
* src/editfns.c (Fstring_to_char): Simplify.
* src/editfns.c (Fstring_to_char): Simplify.
This tweak improved the CPU time performance of
‘make compile-always’ by about 1.8% on my platform.
Diffstat (limited to 'src')
| -rw-r--r-- | src/editfns.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/editfns.c b/src/editfns.c index 1a199bad6de..c32488e271f 100644 --- a/src/editfns.c +++ b/src/editfns.c | |||
| @@ -162,20 +162,14 @@ DEFUN ("byte-to-string", Fbyte_to_string, Sbyte_to_string, 1, 1, 0, | |||
| 162 | 162 | ||
| 163 | DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0, | 163 | DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0, |
| 164 | doc: /* Return the first character in STRING. */) | 164 | doc: /* Return the first character in STRING. */) |
| 165 | (register Lisp_Object string) | 165 | (Lisp_Object string) |
| 166 | { | 166 | { |
| 167 | register Lisp_Object val; | ||
| 168 | CHECK_STRING (string); | 167 | CHECK_STRING (string); |
| 169 | if (SCHARS (string)) | 168 | |
| 170 | { | 169 | /* This returns zero if STRING is empty. */ |
| 171 | if (STRING_MULTIBYTE (string)) | 170 | return make_fixnum (STRING_MULTIBYTE (string) |
| 172 | XSETFASTINT (val, STRING_CHAR (SDATA (string))); | 171 | ? STRING_CHAR (SDATA (string)) |
| 173 | else | 172 | : SREF (string, 0)); |
| 174 | XSETFASTINT (val, SREF (string, 0)); | ||
| 175 | } | ||
| 176 | else | ||
| 177 | XSETFASTINT (val, 0); | ||
| 178 | return val; | ||
| 179 | } | 173 | } |
| 180 | 174 | ||
| 181 | DEFUN ("point", Fpoint, Spoint, 0, 0, 0, | 175 | DEFUN ("point", Fpoint, Spoint, 0, 0, 0, |