diff options
| author | Karl Heuer <kwzh@gnu.org> | 1994-11-16 03:41:56 +0000 |
|---|---|---|
| committer | Karl Heuer <kwzh@gnu.org> | 1994-11-16 03:41:56 +0000 |
| commit | c24e4efeb5459d60d18ac82566a5f80e01466379 (patch) | |
| tree | 71f2a62df3e4b9c405cb671cd090160140eb33c3 | |
| parent | a2ad3e19d3aea7628b69630acea5badedf0f12f1 (diff) | |
| download | emacs-c24e4efeb5459d60d18ac82566a5f80e01466379.tar.gz | |
(Farray_length): Delete this obsolete function.
(Faref, Faset): If object is a string, use XSTRING, not XVECTOR.
| -rw-r--r-- | src/data.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/data.c b/src/data.c index 0350ecc3156..2f41d4ee60f 100644 --- a/src/data.c +++ b/src/data.c @@ -1334,18 +1334,22 @@ ARRAY may be a vector or a string, or a byte-code object. INDEX starts at 0.") CHECK_NUMBER (idx, 1); idxval = XINT (idx); - if (!VECTORP (array) && !STRINGP (array) && !COMPILEDP (array)) - array = wrong_type_argument (Qarrayp, array); - if (idxval < 0 || idxval >= XVECTOR (array)->size) - args_out_of_range (array, idx); if (STRINGP (array)) { Lisp_Object val; + if (idxval < 0 || idxval >= XSTRING (array)->size) + args_out_of_range (array, idx); XSETFASTINT (val, (unsigned char) XSTRING (array)->data[idxval]); return val; } else - return XVECTOR (array)->contents[idxval]; + { + if (!VECTORP (array) && !COMPILEDP (array)) + array = wrong_type_argument (Qarrayp, array); + if (idxval < 0 || idxval >= XVECTOR (array)->size) + args_out_of_range (array, idx); + return XVECTOR (array)->contents[idxval]; + } } DEFUN ("aset", Faset, Saset, 3, 3, 0, @@ -1361,31 +1365,24 @@ ARRAY may be a vector or a string. IDX starts at 0.") idxval = XINT (idx); if (!VECTORP (array) && !STRINGP (array)) array = wrong_type_argument (Qarrayp, array); - if (idxval < 0 || idxval >= XVECTOR (array)->size) - args_out_of_range (array, idx); CHECK_IMPURE (array); if (VECTORP (array)) - XVECTOR (array)->contents[idxval] = newelt; + { + if (idxval < 0 || idxval >= XVECTOR (array)->size) + args_out_of_range (array, idx); + XVECTOR (array)->contents[idxval] = newelt; + } else { + if (idxval < 0 || idxval >= XSTRING (array)->size) + args_out_of_range (array, idx); CHECK_NUMBER (newelt, 2); XSTRING (array)->data[idxval] = XINT (newelt); } return newelt; } - -Lisp_Object -Farray_length (array) - register Lisp_Object array; -{ - register Lisp_Object size; - if (!VECTORP (array) && !STRINGP (array) && !COMPILEDP (array)) - array = wrong_type_argument (Qarrayp, array); - XSETFASTINT (size, XVECTOR (array)->size); - return size; -} /* Arithmetic functions */ |
