Commit 00498bfc authored by Andreas Schwab's avatar Andreas Schwab
Browse files

(internal_equal) <case Lisp_Vectorlike>: Declare size as

EMACS_INT to not lose bits.
(Ffillarray): Don't set bits beyond the size of a bool vector.
parent 95e52d88
2003-11-25 Andreas Schwab <schwab@suse.de>
* fns.c (internal_equal) <case Lisp_Vectorlike>: Declare size as
EMACS_INT to not lose bits.
(Ffillarray): Don't set bits beyond the size of a bool vector.
2003-11-25 Kim F. Storm <storm@cua.dk>
* print.c (Fredirect_debugging_output) [!GNU_LINUX]: Do not
......
......@@ -2192,8 +2192,8 @@ internal_equal (o1, o2, depth)
case Lisp_Vectorlike:
{
register int i, size;
size = XVECTOR (o1)->size;
register int i;
EMACS_INT size = XVECTOR (o1)->size;
/* Pseudovectors have the type encoded in the size field, so this test
actually checks that the objects have the same type as well as the
same size. */
......@@ -2315,8 +2315,15 @@ ARRAY is a vector, string, char-table, or bool-vector. */)
= (XBOOL_VECTOR (array)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR;
charval = (! NILP (item) ? -1 : 0);
for (index = 0; index < size_in_chars; index++)
for (index = 0; index < size_in_chars - 1; index++)
p[index] = charval;
if (index < size_in_chars)
{
/* Mask out bits beyond the vector size. */
if (XBOOL_VECTOR (array)->size % BITS_PER_CHAR)
charval &= (1 << (XBOOL_VECTOR (array)->size % BITS_PER_CHAR)) - 1;
p[index] = charval;
}
}
else
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment