diff options
| author | Paul Eggert | 2011-06-08 10:43:47 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-06-08 10:43:47 -0700 |
| commit | c78baabfc2e52a99d85d2e28f8f67d75e4d93778 (patch) | |
| tree | ade8fd6d593e23dcb6ba3f0fec95997a39670fd8 /src/alloc.c | |
| parent | c9d624c605059127505b6d4baec8f07d6ff731d9 (diff) | |
| download | emacs-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.c | 5 |
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) |