diff options
| author | Andreas Schwab | 2004-04-26 21:44:22 +0000 |
|---|---|---|
| committer | Andreas Schwab | 2004-04-26 21:44:22 +0000 |
| commit | db85986c76f0b1c4c34ff86b6305004c3c0f1ec4 (patch) | |
| tree | 0d3fc13f247eb6e3c9a7327a78c8d8fdbf198f59 /src | |
| parent | b9ed21775591cf1d901f8e501c5f1dc86e840c7f (diff) | |
| download | emacs-db85986c76f0b1c4c34ff86b6305004c3c0f1ec4.tar.gz emacs-db85986c76f0b1c4c34ff86b6305004c3c0f1ec4.zip | |
(Fcopy_sequence, concat, internal_equal, Ffillarray, mapcar1): Use
BOOL_VECTOR_BITS_PER_CHAR instead of BITS_PER_CHAR for bool vectors.
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 23 |
1 files changed, 13 insertions, 10 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* Random utility Lisp functions. | 1 | /* Random utility Lisp functions. |
| 2 | Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 98, 99, 2000, 2001, 02, 2003 | 2 | Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 98, 99, 2000, 2001, 02, 03, 2004 |
| 3 | Free Software Foundation, Inc. | 3 | Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| @@ -513,7 +513,8 @@ with the original. */) | |||
| 513 | { | 513 | { |
| 514 | Lisp_Object val; | 514 | Lisp_Object val; |
| 515 | int size_in_chars | 515 | int size_in_chars |
| 516 | = (XBOOL_VECTOR (arg)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR; | 516 | = ((XBOOL_VECTOR (arg)->size + BOOL_VECTOR_BITS_PER_CHAR - 1) |
| 517 | / BOOL_VECTOR_BITS_PER_CHAR); | ||
| 517 | 518 | ||
| 518 | val = Fmake_bool_vector (Flength (arg), Qnil); | 519 | val = Fmake_bool_vector (Flength (arg), Qnil); |
| 519 | bcopy (XBOOL_VECTOR (arg)->data, XBOOL_VECTOR (val)->data, | 520 | bcopy (XBOOL_VECTOR (arg)->data, XBOOL_VECTOR (val)->data, |
| @@ -783,8 +784,8 @@ concat (nargs, args, target_type, last_special) | |||
| 783 | else if (BOOL_VECTOR_P (this)) | 784 | else if (BOOL_VECTOR_P (this)) |
| 784 | { | 785 | { |
| 785 | int byte; | 786 | int byte; |
| 786 | byte = XBOOL_VECTOR (this)->data[thisindex / BITS_PER_CHAR]; | 787 | byte = XBOOL_VECTOR (this)->data[thisindex / BOOL_VECTOR_BITS_PER_CHAR]; |
| 787 | if (byte & (1 << (thisindex % BITS_PER_CHAR))) | 788 | if (byte & (1 << (thisindex % BOOL_VECTOR_BITS_PER_CHAR))) |
| 788 | elt = Qt; | 789 | elt = Qt; |
| 789 | else | 790 | else |
| 790 | elt = Qnil; | 791 | elt = Qnil; |
| @@ -2245,7 +2246,8 @@ internal_equal (o1, o2, depth, props) | |||
| 2245 | if (BOOL_VECTOR_P (o1)) | 2246 | if (BOOL_VECTOR_P (o1)) |
| 2246 | { | 2247 | { |
| 2247 | int size_in_chars | 2248 | int size_in_chars |
| 2248 | = (XBOOL_VECTOR (o1)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR; | 2249 | = ((XBOOL_VECTOR (o1)->size + BOOL_VECTOR_BITS_PER_CHAR - 1) |
| 2250 | / BOOL_VECTOR_BITS_PER_CHAR); | ||
| 2249 | 2251 | ||
| 2250 | if (XBOOL_VECTOR (o1)->size != XBOOL_VECTOR (o2)->size) | 2252 | if (XBOOL_VECTOR (o1)->size != XBOOL_VECTOR (o2)->size) |
| 2251 | return 0; | 2253 | return 0; |
| @@ -2356,7 +2358,8 @@ ARRAY is a vector, string, char-table, or bool-vector. */) | |||
| 2356 | { | 2358 | { |
| 2357 | register unsigned char *p = XBOOL_VECTOR (array)->data; | 2359 | register unsigned char *p = XBOOL_VECTOR (array)->data; |
| 2358 | int size_in_chars | 2360 | int size_in_chars |
| 2359 | = (XBOOL_VECTOR (array)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR; | 2361 | = ((XBOOL_VECTOR (array)->size + BOOL_VECTOR_BITS_PER_CHAR - 1) |
| 2362 | / BOOL_VECTOR_BITS_PER_CHAR); | ||
| 2360 | 2363 | ||
| 2361 | charval = (! NILP (item) ? -1 : 0); | 2364 | charval = (! NILP (item) ? -1 : 0); |
| 2362 | for (index = 0; index < size_in_chars - 1; index++) | 2365 | for (index = 0; index < size_in_chars - 1; index++) |
| @@ -2364,8 +2367,8 @@ ARRAY is a vector, string, char-table, or bool-vector. */) | |||
| 2364 | if (index < size_in_chars) | 2367 | if (index < size_in_chars) |
| 2365 | { | 2368 | { |
| 2366 | /* Mask out bits beyond the vector size. */ | 2369 | /* Mask out bits beyond the vector size. */ |
| 2367 | if (XBOOL_VECTOR (array)->size % BITS_PER_CHAR) | 2370 | if (XBOOL_VECTOR (array)->size % BOOL_VECTOR_BITS_PER_CHAR) |
| 2368 | charval &= (1 << (XBOOL_VECTOR (array)->size % BITS_PER_CHAR)) - 1; | 2371 | charval &= (1 << (XBOOL_VECTOR (array)->size % BOOL_VECTOR_BITS_PER_CHAR)) - 1; |
| 2369 | p[index] = charval; | 2372 | p[index] = charval; |
| 2370 | } | 2373 | } |
| 2371 | } | 2374 | } |
| @@ -2958,8 +2961,8 @@ mapcar1 (leni, vals, fn, seq) | |||
| 2958 | for (i = 0; i < leni; i++) | 2961 | for (i = 0; i < leni; i++) |
| 2959 | { | 2962 | { |
| 2960 | int byte; | 2963 | int byte; |
| 2961 | byte = XBOOL_VECTOR (seq)->data[i / BITS_PER_CHAR]; | 2964 | byte = XBOOL_VECTOR (seq)->data[i / BOOL_VECTOR_BITS_PER_CHAR]; |
| 2962 | if (byte & (1 << (i % BITS_PER_CHAR))) | 2965 | if (byte & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR))) |
| 2963 | dummy = Qt; | 2966 | dummy = Qt; |
| 2964 | else | 2967 | else |
| 2965 | dummy = Qnil; | 2968 | dummy = Qnil; |