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:
parent
14c5155a18
commit
64de53d81b
1 changed files with 11 additions and 6 deletions
17
src/data.c
17
src/data.c
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue