aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorPaul Eggert2011-06-08 10:43:47 -0700
committerPaul Eggert2011-06-08 10:43:47 -0700
commitc78baabfc2e52a99d85d2e28f8f67d75e4d93778 (patch)
treeade8fd6d593e23dcb6ba3f0fec95997a39670fd8 /src/alloc.c
parentc9d624c605059127505b6d4baec8f07d6ff731d9 (diff)
downloademacs-c78baabfc2e52a99d85d2e28f8f67d75e4d93778.tar.gz
emacs-c78baabfc2e52a99d85d2e28f8f67d75e4d93778.zip
* alloc.c (Fmake_bool_vector): Don't assume vector size fits in int.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/alloc.c b/src/alloc.c
index fa4f1d38130..88542e86c48 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -2246,7 +2246,6 @@ LENGTH must be a number. INIT matters only in whether it is t or nil. */)
2246{ 2246{
2247 register Lisp_Object val; 2247 register Lisp_Object val;
2248 struct Lisp_Bool_Vector *p; 2248 struct Lisp_Bool_Vector *p;
2249 int real_init, i;
2250 EMACS_INT length_in_chars, length_in_elts; 2249 EMACS_INT length_in_chars, length_in_elts;
2251 int bits_per_value; 2250 int bits_per_value;
2252 2251
@@ -2268,9 +2267,7 @@ LENGTH must be a number. INIT matters only in whether it is t or nil. */)
2268 p = XBOOL_VECTOR (val); 2267 p = XBOOL_VECTOR (val);
2269 p->size = XFASTINT (length); 2268 p->size = XFASTINT (length);
2270 2269
2271 real_init = (NILP (init) ? 0 : -1); 2270 memset (p->data, NILP (init) ? 0 : -1, length_in_chars);
2272 for (i = 0; i < length_in_chars ; i++)
2273 p->data[i] = real_init;
2274 2271
2275 /* Clear the extraneous bits in the last byte. */ 2272 /* Clear the extraneous bits in the last byte. */
2276 if (XINT (length) != length_in_chars * BOOL_VECTOR_BITS_PER_CHAR) 2273 if (XINT (length) != length_in_chars * BOOL_VECTOR_BITS_PER_CHAR)