aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorLars Brinkhoff2017-04-03 08:42:18 +0200
committerLars Brinkhoff2017-04-10 20:35:13 +0200
commit3ccd0ff1064a2836c379b13c2d5f4b11c5da1f88 (patch)
tree29393d7ce726f222d0f82ddfbb1363b0364168e7 /src/eval.c
parentdd42ca427cf8a890678f574de43685ae70416491 (diff)
downloademacs-3ccd0ff1064a2836c379b13c2d5f4b11c5da1f88.tar.gz
emacs-3ccd0ff1064a2836c379b13c2d5f4b11c5da1f88.zip
Add PVSIZE function to return the size of a pseudovector.
* src/lisp.h (PVSIZE): New function. * src/chartab.c (copy_char_table): * src/data.c (Ftype_of, Finteractive_form, Faref, Faset): * src/doc.c (Fdocumentation, store_function_docstring): * src/eval.c (Fcommandp, funcall_lambda, lambda_arity, Ffetch_bytecode): * src/fns.c (Flength, Fcopy_sequence): * src/font.h (FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P): * src/lread.c (substitute_object_recurse): * src/src/print.c (print_object): Use it.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/eval.c b/src/eval.c
index 16d1cf810ea..af0912fd14f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1881,8 +1881,7 @@ then strings and vectors are not accepted. */)
1881 have an element whose index is COMPILED_INTERACTIVE, which is 1881 have an element whose index is COMPILED_INTERACTIVE, which is
1882 where the interactive spec is stored. */ 1882 where the interactive spec is stored. */
1883 else if (COMPILEDP (fun)) 1883 else if (COMPILEDP (fun))
1884 return ((ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK) > COMPILED_INTERACTIVE 1884 return (PVSIZE (fun) > COMPILED_INTERACTIVE ? Qt : if_prop);
1885 ? Qt : if_prop);
1886 1885
1887 /* Strings and vectors are keyboard macros. */ 1886 /* Strings and vectors are keyboard macros. */
1888 if (STRINGP (fun) || VECTORP (fun)) 1887 if (STRINGP (fun) || VECTORP (fun))
@@ -2922,7 +2921,7 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
2922 } 2921 }
2923 else if (COMPILEDP (fun)) 2922 else if (COMPILEDP (fun))
2924 { 2923 {
2925 ptrdiff_t size = ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK; 2924 ptrdiff_t size = PVSIZE (fun);
2926 if (size <= COMPILED_STACK_DEPTH) 2925 if (size <= COMPILED_STACK_DEPTH)
2927 xsignal1 (Qinvalid_function, fun); 2926 xsignal1 (Qinvalid_function, fun);
2928 syms_left = AREF (fun, COMPILED_ARGLIST); 2927 syms_left = AREF (fun, COMPILED_ARGLIST);
@@ -3103,7 +3102,7 @@ lambda_arity (Lisp_Object fun)
3103 } 3102 }
3104 else if (COMPILEDP (fun)) 3103 else if (COMPILEDP (fun))
3105 { 3104 {
3106 ptrdiff_t size = ASIZE (fun) & PSEUDOVECTOR_SIZE_MASK; 3105 ptrdiff_t size = PVSIZE (fun);
3107 if (size <= COMPILED_STACK_DEPTH) 3106 if (size <= COMPILED_STACK_DEPTH)
3108 xsignal1 (Qinvalid_function, fun); 3107 xsignal1 (Qinvalid_function, fun);
3109 syms_left = AREF (fun, COMPILED_ARGLIST); 3108 syms_left = AREF (fun, COMPILED_ARGLIST);
@@ -3148,7 +3147,7 @@ DEFUN ("fetch-bytecode", Ffetch_bytecode, Sfetch_bytecode,
3148 3147
3149 if (COMPILEDP (object)) 3148 if (COMPILEDP (object))
3150 { 3149 {
3151 ptrdiff_t size = ASIZE (object) & PSEUDOVECTOR_SIZE_MASK; 3150 ptrdiff_t size = PVSIZE (object);
3152 if (size <= COMPILED_STACK_DEPTH) 3151 if (size <= COMPILED_STACK_DEPTH)
3153 xsignal1 (Qinvalid_function, object); 3152 xsignal1 (Qinvalid_function, object);
3154 if (CONSP (AREF (object, COMPILED_BYTECODE))) 3153 if (CONSP (AREF (object, COMPILED_BYTECODE)))