mirror of https://github.com/python/cpython
replace PY_SIZE_MAX with SIZE_MAX
This commit is contained in:
parent
c75abff533
commit
2f8bfef158
|
@ -115,16 +115,8 @@ typedef Py_ssize_t Py_ssize_clean_t;
|
||||||
typedef int Py_ssize_clean_t;
|
typedef int Py_ssize_clean_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Largest possible value of size_t.
|
/* Largest possible value of size_t. */
|
||||||
SIZE_MAX is part of C99, so it might be defined on some
|
|
||||||
platforms. If it is not defined, (size_t)-1 is a portable
|
|
||||||
definition for C89, due to the way signed->unsigned
|
|
||||||
conversion is defined. */
|
|
||||||
#ifdef SIZE_MAX
|
|
||||||
#define PY_SIZE_MAX SIZE_MAX
|
#define PY_SIZE_MAX SIZE_MAX
|
||||||
#else
|
|
||||||
#define PY_SIZE_MAX ((size_t)-1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Largest positive value of type Py_ssize_t. */
|
/* Largest positive value of type Py_ssize_t. */
|
||||||
#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
#define PY_SSIZE_T_MAX ((Py_ssize_t)(((size_t)-1)>>1))
|
||||||
|
|
|
@ -1787,7 +1787,7 @@ element_ass_subscr(PyObject* self_, PyObject* item, PyObject* value)
|
||||||
step = -step;
|
step = -step;
|
||||||
}
|
}
|
||||||
|
|
||||||
assert((size_t)slicelen <= PY_SIZE_MAX / sizeof(PyObject *));
|
assert((size_t)slicelen <= SIZE_MAX / sizeof(PyObject *));
|
||||||
|
|
||||||
/* recycle is a list that will contain all the children
|
/* recycle is a list that will contain all the children
|
||||||
* scheduled for removal.
|
* scheduled for removal.
|
||||||
|
|
|
@ -976,7 +976,7 @@ static PyType_Spec PyTclObject_Type_spec = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#if PY_SIZE_MAX > INT_MAX
|
#if SIZE_MAX > INT_MAX
|
||||||
#define CHECK_STRING_LENGTH(s) do { \
|
#define CHECK_STRING_LENGTH(s) do { \
|
||||||
if (s != NULL && strlen(s) >= INT_MAX) { \
|
if (s != NULL && strlen(s) >= INT_MAX) { \
|
||||||
PyErr_SetString(PyExc_OverflowError, "string is too long"); \
|
PyErr_SetString(PyExc_OverflowError, "string is too long"); \
|
||||||
|
|
|
@ -655,7 +655,7 @@ tracemalloc_add_trace(_PyTraceMalloc_domain_t domain, uintptr_t ptr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
assert(tracemalloc_traced_memory <= PY_SIZE_MAX - size);
|
assert(tracemalloc_traced_memory <= SIZE_MAX - size);
|
||||||
tracemalloc_traced_memory += size;
|
tracemalloc_traced_memory += size;
|
||||||
if (tracemalloc_traced_memory > tracemalloc_peak_traced_memory)
|
if (tracemalloc_traced_memory > tracemalloc_peak_traced_memory)
|
||||||
tracemalloc_peak_traced_memory = tracemalloc_traced_memory;
|
tracemalloc_peak_traced_memory = tracemalloc_traced_memory;
|
||||||
|
@ -672,7 +672,7 @@ tracemalloc_alloc(int use_calloc, void *ctx, size_t nelem, size_t elsize)
|
||||||
PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
|
PyMemAllocatorEx *alloc = (PyMemAllocatorEx *)ctx;
|
||||||
void *ptr;
|
void *ptr;
|
||||||
|
|
||||||
assert(elsize == 0 || nelem <= PY_SIZE_MAX / elsize);
|
assert(elsize == 0 || nelem <= SIZE_MAX / elsize);
|
||||||
|
|
||||||
if (use_calloc)
|
if (use_calloc)
|
||||||
ptr = alloc->calloc(alloc->ctx, nelem, elsize);
|
ptr = alloc->calloc(alloc->ctx, nelem, elsize);
|
||||||
|
|
|
@ -1337,7 +1337,7 @@ audioop_ratecv_impl(PyObject *module, Py_buffer *fragment, int width,
|
||||||
weightA /= d;
|
weightA /= d;
|
||||||
weightB /= d;
|
weightB /= d;
|
||||||
|
|
||||||
if ((size_t)nchannels > PY_SIZE_MAX/sizeof(int)) {
|
if ((size_t)nchannels > SIZE_MAX/sizeof(int)) {
|
||||||
PyErr_SetString(PyExc_MemoryError,
|
PyErr_SetString(PyExc_MemoryError,
|
||||||
"not enough memory for output buffer");
|
"not enough memory for output buffer");
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -49,7 +49,7 @@ list_resize(PyListObject *self, Py_ssize_t newsize)
|
||||||
new_allocated = (newsize >> 3) + (newsize < 9 ? 3 : 6);
|
new_allocated = (newsize >> 3) + (newsize < 9 ? 3 : 6);
|
||||||
|
|
||||||
/* check for integer overflow */
|
/* check for integer overflow */
|
||||||
if (new_allocated > PY_SIZE_MAX - newsize) {
|
if (new_allocated > SIZE_MAX - newsize) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
|
@ -59,7 +59,7 @@ list_resize(PyListObject *self, Py_ssize_t newsize)
|
||||||
if (newsize == 0)
|
if (newsize == 0)
|
||||||
new_allocated = 0;
|
new_allocated = 0;
|
||||||
items = self->ob_item;
|
items = self->ob_item;
|
||||||
if (new_allocated <= (PY_SIZE_MAX / sizeof(PyObject *)))
|
if (new_allocated <= (SIZE_MAX / sizeof(PyObject *)))
|
||||||
PyMem_RESIZE(items, PyObject *, new_allocated);
|
PyMem_RESIZE(items, PyObject *, new_allocated);
|
||||||
else
|
else
|
||||||
items = NULL;
|
items = NULL;
|
||||||
|
|
|
@ -721,7 +721,7 @@ _PyLong_NumBits(PyObject *vv)
|
||||||
assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
|
assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
|
||||||
if (ndigits > 0) {
|
if (ndigits > 0) {
|
||||||
digit msd = v->ob_digit[ndigits - 1];
|
digit msd = v->ob_digit[ndigits - 1];
|
||||||
if ((size_t)(ndigits - 1) > PY_SIZE_MAX / (size_t)PyLong_SHIFT)
|
if ((size_t)(ndigits - 1) > SIZE_MAX / (size_t)PyLong_SHIFT)
|
||||||
goto Overflow;
|
goto Overflow;
|
||||||
result = (size_t)(ndigits - 1) * (size_t)PyLong_SHIFT;
|
result = (size_t)(ndigits - 1) * (size_t)PyLong_SHIFT;
|
||||||
do {
|
do {
|
||||||
|
|
|
@ -1057,7 +1057,7 @@ new_arena(void)
|
||||||
if (numarenas <= maxarenas)
|
if (numarenas <= maxarenas)
|
||||||
return NULL; /* overflow */
|
return NULL; /* overflow */
|
||||||
#if SIZEOF_SIZE_T <= SIZEOF_INT
|
#if SIZEOF_SIZE_T <= SIZEOF_INT
|
||||||
if (numarenas > PY_SIZE_MAX / sizeof(*arenas))
|
if (numarenas > SIZE_MAX / sizeof(*arenas))
|
||||||
return NULL; /* overflow */
|
return NULL; /* overflow */
|
||||||
#endif
|
#endif
|
||||||
nbytes = numarenas * sizeof(*arenas);
|
nbytes = numarenas * sizeof(*arenas);
|
||||||
|
|
|
@ -91,7 +91,7 @@ PyNode_AddChild(node *n1, int type, char *str, int lineno, int col_offset)
|
||||||
if (current_capacity < 0 || required_capacity < 0)
|
if (current_capacity < 0 || required_capacity < 0)
|
||||||
return E_OVERFLOW;
|
return E_OVERFLOW;
|
||||||
if (current_capacity < required_capacity) {
|
if (current_capacity < required_capacity) {
|
||||||
if ((size_t)required_capacity > PY_SIZE_MAX / sizeof(node)) {
|
if ((size_t)required_capacity > SIZE_MAX / sizeof(node)) {
|
||||||
return E_NOMEM;
|
return E_NOMEM;
|
||||||
}
|
}
|
||||||
n = n1->n_child;
|
n = n1->n_child;
|
||||||
|
|
|
@ -9,14 +9,14 @@ _Py_asdl_seq_new(Py_ssize_t size, PyArena *arena)
|
||||||
|
|
||||||
/* check size is sane */
|
/* check size is sane */
|
||||||
if (size < 0 ||
|
if (size < 0 ||
|
||||||
(size && (((size_t)size - 1) > (PY_SIZE_MAX / sizeof(void *))))) {
|
(size && (((size_t)size - 1) > (SIZE_MAX / sizeof(void *))))) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
n = (size ? (sizeof(void *) * (size - 1)) : 0);
|
n = (size ? (sizeof(void *) * (size - 1)) : 0);
|
||||||
|
|
||||||
/* check if size can be added safely */
|
/* check if size can be added safely */
|
||||||
if (n > PY_SIZE_MAX - sizeof(asdl_seq)) {
|
if (n > SIZE_MAX - sizeof(asdl_seq)) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -40,14 +40,14 @@ _Py_asdl_int_seq_new(Py_ssize_t size, PyArena *arena)
|
||||||
|
|
||||||
/* check size is sane */
|
/* check size is sane */
|
||||||
if (size < 0 ||
|
if (size < 0 ||
|
||||||
(size && (((size_t)size - 1) > (PY_SIZE_MAX / sizeof(void *))))) {
|
(size && (((size_t)size - 1) > (SIZE_MAX / sizeof(void *))))) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
n = (size ? (sizeof(void *) * (size - 1)) : 0);
|
n = (size ? (sizeof(void *) * (size - 1)) : 0);
|
||||||
|
|
||||||
/* check if size can be added safely */
|
/* check if size can be added safely */
|
||||||
if (n > PY_SIZE_MAX - sizeof(asdl_seq)) {
|
if (n > SIZE_MAX - sizeof(asdl_seq)) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3985,7 +3985,7 @@ decode_unicode_with_escapes(struct compiling *c, const char *s, size_t len)
|
||||||
const char *end;
|
const char *end;
|
||||||
|
|
||||||
/* check for integer overflow */
|
/* check for integer overflow */
|
||||||
if (len > PY_SIZE_MAX / 6)
|
if (len > SIZE_MAX / 6)
|
||||||
return NULL;
|
return NULL;
|
||||||
/* "ä" (2 bytes) may become "\U000000E4" (10 bytes), or 1:5
|
/* "ä" (2 bytes) may become "\U000000E4" (10 bytes), or 1:5
|
||||||
"\ä" (3 bytes) may become "\u005c\U000000E4" (16 bytes), or ~1:6 */
|
"\ä" (3 bytes) may become "\u005c\U000000E4" (16 bytes), or ~1:6 */
|
||||||
|
|
|
@ -804,7 +804,7 @@ compiler_next_instr(struct compiler *c, basicblock *b)
|
||||||
oldsize = b->b_ialloc * sizeof(struct instr);
|
oldsize = b->b_ialloc * sizeof(struct instr);
|
||||||
newsize = oldsize << 1;
|
newsize = oldsize << 1;
|
||||||
|
|
||||||
if (oldsize > (PY_SIZE_MAX >> 1)) {
|
if (oldsize > (SIZE_MAX >> 1)) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -4520,7 +4520,7 @@ assemble_init(struct assembler *a, int nblocks, int firstlineno)
|
||||||
a->a_lnotab = PyBytes_FromStringAndSize(NULL, DEFAULT_LNOTAB_SIZE);
|
a->a_lnotab = PyBytes_FromStringAndSize(NULL, DEFAULT_LNOTAB_SIZE);
|
||||||
if (!a->a_lnotab)
|
if (!a->a_lnotab)
|
||||||
return 0;
|
return 0;
|
||||||
if ((size_t)nblocks > PY_SIZE_MAX / sizeof(basicblock *)) {
|
if ((size_t)nblocks > SIZE_MAX / sizeof(basicblock *)) {
|
||||||
PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue