Subject: bug#15405: 24.3; #[] freezes emacs

From: Stefan Monnier <[email-masked]>
Date: Wed, 25 Sep 2013 13:10:29 -0400

> Without any special casing of zero vectors, the allocator calls
> SETUP_ON_FREE_LIST for a zero vector and sets v->u.next.  But for a
> zero vector the allocator only allows enough memory for the header, so
> setting the next pointer corrupts other memory.

Yes, that's why we have special cased the zero-length vectors.

How many different zero vectors do we need?  We at least need 2 (the []
and the #[]), but do we need others?  If not, let's try and change the
code so that we can have those two pre-allocated and use the right one
at the right place.

        Stefan