aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorPaul Eggert2012-05-09 10:51:30 -0700
committerPaul Eggert2012-05-09 10:51:30 -0700
commitb263a6b03bd58b811ac4f99aae7f37a0279528a9 (patch)
tree12faf8194bee0393c21dad562075e68911af873f /src/eval.c
parent3478ec4554757213e8d2344826110cc0f4ae4f3c (diff)
downloademacs-b263a6b03bd58b811ac4f99aae7f37a0279528a9.tar.gz
emacs-b263a6b03bd58b811ac4f99aae7f37a0279528a9.zip
Untag more efficiently if USE_LSB_TAG.
This is based on a proposal by YAMAMOTO Mitsuharu in <http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>. For an admittedly artificial (nth 8000 longlist) benchmark on Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks Emacs's overall text size by 1%. * lisp.h (XUNTAG): New macro. (XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW) (XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR) (XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it. * eval.c (Fautoload): * font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT): * frame.h (XFRAME): Use XUNTAG.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index cb0518f34ec..3d0e82c2d9f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2048,7 +2048,7 @@ this does nothing and returns nil. */)
2048 We used to use 0 here, but that leads to accidental sharing in 2048 We used to use 0 here, but that leads to accidental sharing in
2049 purecopy's hash-consing, so we use a (hopefully) unique integer 2049 purecopy's hash-consing, so we use a (hopefully) unique integer
2050 instead. */ 2050 instead. */
2051 docstring = make_number (XPNTR (function)); 2051 docstring = make_number (XUNTAG (function, Lisp_Symbol));
2052 return Ffset (function, 2052 return Ffset (function,
2053 Fpurecopy (list5 (Qautoload, file, docstring, 2053 Fpurecopy (list5 (Qautoload, file, docstring,
2054 interactive, type))); 2054 interactive, type)));