CHECK_IMPURE and PURE_P speedup
* src/intervals.c (create_root_interval): Do CHECK_IMPURE only for strings; not needed for buffers. Prefer ! STRINGP to BUFFERP, for a tad more speed. * src/puresize.h (CHECK_IMPURE, PURE_P): Now inline functions instead of macros. (PURE_P): Don’t use XPNTR; that is now the caller’s responsibility. All callers changed. (CHECK_IMPURE): New argument PTR, to save us the work of running XPNTR. All callers changed.
This commit is contained in:
@@ -560,7 +560,7 @@ DEFUN ("setcar", Fsetcar, Ssetcar, 2, 2, 0,
|
||||
(register Lisp_Object cell, Lisp_Object newcar)
|
||||
{
|
||||
CHECK_CONS (cell);
|
||||
CHECK_IMPURE (cell);
|
||||
CHECK_IMPURE (cell, XCONS (cell));
|
||||
XSETCAR (cell, newcar);
|
||||
return newcar;
|
||||
}
|
||||
@@ -570,7 +570,7 @@ DEFUN ("setcdr", Fsetcdr, Ssetcdr, 2, 2, 0,
|
||||
(register Lisp_Object cell, Lisp_Object newcdr)
|
||||
{
|
||||
CHECK_CONS (cell);
|
||||
CHECK_IMPURE (cell);
|
||||
CHECK_IMPURE (cell, XCONS (cell));
|
||||
XSETCDR (cell, newcdr);
|
||||
return newcdr;
|
||||
}
|
||||
@@ -2215,7 +2215,7 @@ bool-vector. IDX starts at 0. */)
|
||||
CHECK_NUMBER (idx);
|
||||
idxval = XINT (idx);
|
||||
CHECK_ARRAY (array, Qarrayp);
|
||||
CHECK_IMPURE (array);
|
||||
CHECK_IMPURE (array, XVECTOR (array));
|
||||
|
||||
if (VECTORP (array))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user