[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 08408b1 2/2: Simplify string-to-char
From: |
Paul Eggert |
Subject: |
master 08408b1 2/2: Simplify string-to-char |
Date: |
Sun, 26 Apr 2020 22:32:01 -0400 (EDT) |
branch: master
commit 08408b13faa911b586ac0c181159ada452a942cc
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
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.
---
src/editfns.c | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/src/editfns.c b/src/editfns.c
index 1a199ba..c32488e 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,
DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0,
doc: /* Return the first character in STRING. */)
- (register Lisp_Object string)
+ (Lisp_Object string)
{
- register Lisp_Object val;
CHECK_STRING (string);
- if (SCHARS (string))
- {
- if (STRING_MULTIBYTE (string))
- XSETFASTINT (val, STRING_CHAR (SDATA (string)));
- else
- XSETFASTINT (val, SREF (string, 0));
- }
- else
- XSETFASTINT (val, 0);
- return val;
+
+ /* This returns zero if STRING is empty. */
+ return make_fixnum (STRING_MULTIBYTE (string)
+ ? STRING_CHAR (SDATA (string))
+ : SREF (string, 0));
}
DEFUN ("point", Fpoint, Spoint, 0, 0, 0,