]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify string-to-char
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 27 Apr 2020 02:30:37 +0000 (19:30 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 27 Apr 2020 02:31:54 +0000 (19:31 -0700)
* 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

index 1a199bad6dec321d49512f0497caf26cb575729b..c32488e271f2d5962df498085414a36bff8c9c89 100644 (file)
@@ -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,