diff options
| author | Lars Brinkhoff | 2017-04-03 08:42:18 +0200 |
|---|---|---|
| committer | Lars Brinkhoff | 2017-04-10 20:35:13 +0200 |
| commit | 3ccd0ff1064a2836c379b13c2d5f4b11c5da1f88 (patch) | |
| tree | 29393d7ce726f222d0f82ddfbb1363b0364168e7 /src/eval.c | |
| parent | dd42ca427cf8a890678f574de43685ae70416491 (diff) | |
| download | emacs-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.c | 9 |
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))) |