1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-27 02:10:52 -08:00

(Findirect_function): Optimize for no indirection.

This commit is contained in:
Kim F. Storm 2006-07-13 13:43:44 +00:00
parent 14c5155a18
commit 64de53d81b

View file

@ -1913,13 +1913,18 @@ function chain of symbols. */)
{
Lisp_Object result;
result = indirect_function (object);
/* 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 (EQ (result, Qunbound))
return (NILP (noerror)
? Fsignal (Qvoid_function, Fcons (object, Qnil))
: Qnil);
return result;
if (NILP (noerror))
Fsignal (Qvoid_function, Fcons (object, Qnil));
return Qnil;
}
/* Extract and set vector and string elements */