aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorRichard M. Stallman1994-12-30 01:50:01 +0000
committerRichard M. Stallman1994-12-30 01:50:01 +0000
commit7f358972bc81e4d92a7e1d6d6e6a265c4fe8f5b9 (patch)
treed4d42389986eeaafdc1207218629ad17a6dd41f6 /src/data.c
parent086234937e9585fa9c7a78f4b468b2cc8abad78f (diff)
downloademacs-7f358972bc81e4d92a7e1d6d6e6a265c4fe8f5b9.tar.gz
emacs-7f358972bc81e4d92a7e1d6d6e6a265c4fe8f5b9.zip
(Faref): Handle compiled function as pseudovector.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c12
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 }