diff options
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/alloc.c b/src/alloc.c index 2c7b02f1158..d758ca18a7b 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -3175,9 +3175,10 @@ allocate_pseudovector (int memlen, int lisplen, | |||
| 3175 | eassert (lisplen <= (1 << PSEUDOVECTOR_SIZE_BITS) - 1); | 3175 | eassert (lisplen <= (1 << PSEUDOVECTOR_SIZE_BITS) - 1); |
| 3176 | 3176 | ||
| 3177 | /* Only the first LISPLEN slots will be traced normally by the GC. | 3177 | /* Only the first LISPLEN slots will be traced normally by the GC. |
| 3178 | But since Qnil == 0, we can memset Lisp_Object slots as well. */ | 3178 | If Qnil is nonzero, clear the non-Lisp data separately. */ |
| 3179 | verify (NIL_IS_ZERO); | 3179 | memsetnil (v->contents, zerolen); |
| 3180 | memset (v->contents, 0, zerolen * word_size); | 3180 | if (NIL_IS_NONZERO) |
| 3181 | memset (v->contents + lisplen, 0, (zerolen - lisplen) * word_size); | ||
| 3181 | 3182 | ||
| 3182 | XSETPVECTYPESIZE (v, tag, lisplen, memlen - lisplen); | 3183 | XSETPVECTYPESIZE (v, tag, lisplen, memlen - lisplen); |
| 3183 | return v; | 3184 | return v; |