emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/data.c,v


From: Kim F. Storm
Subject: [Emacs-diffs] Changes to emacs/src/data.c,v
Date: Thu, 13 Jul 2006 13:43:44 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kim F. Storm <kfstorm>  06/07/13 13:43:44

Index: data.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/data.c,v
retrieving revision 1.264
retrieving revision 1.265
diff -u -b -r1.264 -r1.265
--- data.c      12 Jul 2006 13:15:46 -0000      1.264
+++ data.c      13 Jul 2006 13:43:44 -0000      1.265
@@ -1913,13 +1913,18 @@
 {
   Lisp_Object result;
 
-  result = indirect_function (object);
-
-  if (EQ (result, Qunbound))
-    return (NILP (noerror)
-           ? Fsignal (Qvoid_function, Fcons (object, Qnil))
-           : Qnil);
+  /* Optimize for no indirection.  */
+  result = object;
+  if (SYMBOLP (result) && !EQ (result, Qunbound)
+      && (result = XSYMBOL (result)->function, SYMBOLP (result)))
+    result = indirect_function (result);
+  if (!EQ (result, Qunbound))
   return result;
+
+  if (NILP (noerror))
+    Fsignal (Qvoid_function, Fcons (object, Qnil));
+
+  return Qnil;
 }
 
 /* Extract and set vector and string elements */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]