bpo-29941: Assert fixes (#886)

Make a non-Py_DEBUG, asserts-enabled build of CPython possible. This means
making sure helper functions are defined when NDEBUG is not defined, not
just when Py_DEBUG is defined.

Also fix a division-by-zero in obmalloc.c that went unnoticed because in Py_DEBUG mode, elsize is never zero.
This commit is contained in:
T. Wouters 2017-03-31 09:14:41 -07:00 committed by GitHub
parent 164d30eb1e
commit a00c3fd12d
4 changed files with 9 additions and 5 deletions

View file

@ -1227,6 +1227,9 @@ _PyObject_Alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)
_Py_AllocatedBlocks++;
if (nelem == 0 || elsize == 0)
goto redirect;
assert(nelem <= PY_SSIZE_T_MAX / elsize);
nbytes = nelem * elsize;
@ -1237,9 +1240,6 @@ _PyObject_Alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)
goto redirect;
#endif
if (nelem == 0 || elsize == 0)
goto redirect;
if ((nbytes - 1) < SMALL_REQUEST_THRESHOLD) {
LOCK();
/*