Sometimes constraints are questionable

Florian Weimer fw at deneb.enyo.de
Sat May 30 18:11:10 UTC 2020


* Martin Buchholz:

> I wrote an earlier version of this grow logic, and then it was
> transplanted into other classes.
>
> We strongly suspect that the VM will throw OOME when we try to
> allocate an array beyond MAX_ARRAY_SIZE, so are reluctant to do so,
> but we also consider the VM behavior a bug that may eventually get
> fixed (or is already a non-issue with a different VM).  We are trying
> for good behavior with both sorts of VM.

I still don't think this explains the present code.  However, I
wouldn't be surprised if there have been early bugs where the VM would
produce a corrupt array instead of failing the allocation.  But these
bugs will have been fixed by now.

C++ has a subclass of std::bad_alloc for certain allocations that
exceed implementation limits (std::bad_array_new_length).  Since
memory is rarely tight when this happens, it allows providing better
diagnostics.


More information about the core-libs-dev mailing list