]> git.eshelyaron.com Git - emacs.git/commitdiff
(Ferror_message_string): Optimize (error STRING) case.
authorRichard M. Stallman <rms@gnu.org>
Fri, 20 Jun 1997 08:45:37 +0000 (08:45 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 20 Jun 1997 08:45:37 +0000 (08:45 +0000)
src/print.c

index 933544467ca40214c5d125b2a73adf7412a22f1b..6ac2b25745d83583bd38348166a32d45c0fa3010 100644 (file)
@@ -727,6 +727,15 @@ DEFUN ("error-message-string", Ferror_message_string, Serror_message_string,
   Lisp_Object original, printcharfun, value;
   struct gcpro gcpro1;
 
+  /* If OBJ is (error STRING), just return STRING.
+     That is not only faster, it also avoids the need to allocate
+     space here when the error is due to memory full.  */
+  if (CONSP (obj) && EQ (XCONS (obj)->car, Qerror)
+      && CONSP (XCONS (obj)->cdr)
+      && STRINGP (XCONS (XCONS (obj)->cdr)->car)
+      && NILP (XCONS (XCONS (obj)->cdr)->cdr))
+    return XCONS (XCONS (obj)->cdr)->car;
+
   print_error_message (obj, Vprin1_to_string_buffer, NULL);
 
   set_buffer_internal (XBUFFER (Vprin1_to_string_buffer));