[Top][All Lists]
[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 */