diff options
| author | Richard M. Stallman | 1994-12-30 01:50:01 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-12-30 01:50:01 +0000 |
| commit | 7f358972bc81e4d92a7e1d6d6e6a265c4fe8f5b9 (patch) | |
| tree | d4d42389986eeaafdc1207218629ad17a6dd41f6 /src/data.c | |
| parent | 086234937e9585fa9c7a78f4b468b2cc8abad78f (diff) | |
| download | emacs-7f358972bc81e4d92a7e1d6d6e6a265c4fe8f5b9.tar.gz emacs-7f358972bc81e4d92a7e1d6d6e6a265c4fe8f5b9.zip | |
(Faref): Handle compiled function as pseudovector.
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/data.c b/src/data.c index 5a4c26e017c..482be25e1cb 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -1350,9 +1350,15 @@ ARRAY may be a vector or a string, or a byte-code object. INDEX starts at 0.") | |||
| 1350 | } | 1350 | } |
| 1351 | else | 1351 | else |
| 1352 | { | 1352 | { |
| 1353 | if (!VECTORP (array) && !COMPILEDP (array)) | 1353 | int size; |
| 1354 | array = wrong_type_argument (Qarrayp, array); | 1354 | if (VECTORP (array)) |
| 1355 | if (idxval < 0 || idxval >= XVECTOR (array)->size) | 1355 | size = XVECTOR (array)->size; |
| 1356 | else if (COMPILEDP (array)) | ||
| 1357 | size = XVECTOR (array)->size & PSEUDOVECTOR_SIZE_MASK; | ||
| 1358 | else | ||
| 1359 | wrong_type_argument (Qarrayp, array); | ||
| 1360 | |||
| 1361 | if (idxval < 0 || idxval >= size) | ||
| 1356 | args_out_of_range (array, idx); | 1362 | args_out_of_range (array, idx); |
| 1357 | return XVECTOR (array)->contents[idxval]; | 1363 | return XVECTOR (array)->contents[idxval]; |
| 1358 | } | 1364 | } |