2192 |
|
|
2193 |
case Lisp_Vectorlike: |
case Lisp_Vectorlike: |
2194 |
{ |
{ |
2195 |
register int i, size; |
register int i; |
2196 |
size = XVECTOR (o1)->size; |
EMACS_INT size = XVECTOR (o1)->size; |
2197 |
/* Pseudovectors have the type encoded in the size field, so this test |
/* Pseudovectors have the type encoded in the size field, so this test |
2198 |
actually checks that the objects have the same type as well as the |
actually checks that the objects have the same type as well as the |
2199 |
same size. */ |
same size. */ |
2315 |
= (XBOOL_VECTOR (array)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR; |
= (XBOOL_VECTOR (array)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR; |
2316 |
|
|
2317 |
charval = (! NILP (item) ? -1 : 0); |
charval = (! NILP (item) ? -1 : 0); |
2318 |
for (index = 0; index < size_in_chars; index++) |
for (index = 0; index < size_in_chars - 1; index++) |
2319 |
p[index] = charval; |
p[index] = charval; |
2320 |
|
if (index < size_in_chars) |
2321 |
|
{ |
2322 |
|
/* Mask out bits beyond the vector size. */ |
2323 |
|
if (XBOOL_VECTOR (array)->size % BITS_PER_CHAR) |
2324 |
|
charval &= (1 << (XBOOL_VECTOR (array)->size % BITS_PER_CHAR)) - 1; |
2325 |
|
p[index] = charval; |
2326 |
|
} |
2327 |
} |
} |
2328 |
else |
else |
2329 |
{ |
{ |