Mercurial > emacs
comparison src/data.c @ 71871:dcd566ed4e9b
(Findirect_function): Optimize for no indirection.
| author | Kim F. Storm <storm@cua.dk> |
|---|---|
| date | Thu, 13 Jul 2006 13:43:44 +0000 |
| parents | d1cea7530d3d |
| children | 7febc7ff0f0d b19aaf4ab0ee |
comparison
equal
deleted
inserted
replaced
| 71870:a0954041b695 | 71871:dcd566ed4e9b |
|---|---|
| 1911 register Lisp_Object object; | 1911 register Lisp_Object object; |
| 1912 Lisp_Object noerror; | 1912 Lisp_Object noerror; |
| 1913 { | 1913 { |
| 1914 Lisp_Object result; | 1914 Lisp_Object result; |
| 1915 | 1915 |
| 1916 result = indirect_function (object); | 1916 /* Optimize for no indirection. */ |
| 1917 | 1917 result = object; |
| 1918 if (EQ (result, Qunbound)) | 1918 if (SYMBOLP (result) && !EQ (result, Qunbound) |
| 1919 return (NILP (noerror) | 1919 && (result = XSYMBOL (result)->function, SYMBOLP (result))) |
| 1920 ? Fsignal (Qvoid_function, Fcons (object, Qnil)) | 1920 result = indirect_function (result); |
| 1921 : Qnil); | 1921 if (!EQ (result, Qunbound)) |
| 1922 return result; | 1922 return result; |
| 1923 | |
| 1924 if (NILP (noerror)) | |
| 1925 Fsignal (Qvoid_function, Fcons (object, Qnil)); | |
| 1926 | |
| 1927 return Qnil; | |
| 1923 } | 1928 } |
| 1924 | 1929 |
| 1925 /* Extract and set vector and string elements */ | 1930 /* Extract and set vector and string elements */ |
| 1926 | 1931 |
| 1927 DEFUN ("aref", Faref, Saref, 2, 2, 0, | 1932 DEFUN ("aref", Faref, Saref, 2, 2, 0, |
