mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
bpo-42519: Replace PyMem_MALLOC() with PyMem_Malloc() (GH-23586)
No longer use deprecated aliases to functions: * Replace PyMem_MALLOC() with PyMem_Malloc() * Replace PyMem_REALLOC() with PyMem_Realloc() * Replace PyMem_FREE() with PyMem_Free() * Replace PyMem_Del() with PyMem_Free() * Replace PyMem_DEL() with PyMem_Free() Modify also the PyMem_DEL() macro to use directly PyMem_Free().
This commit is contained in:
parent
b2d0c66e88
commit
00d7abd7ef
33 changed files with 175 additions and 188 deletions
|
@ -53,18 +53,6 @@ PyAPI_FUNC(void *) PyMem_Malloc(size_t size);
|
|||
PyAPI_FUNC(void *) PyMem_Realloc(void *ptr, size_t new_size);
|
||||
PyAPI_FUNC(void) PyMem_Free(void *ptr);
|
||||
|
||||
/* Macros. */
|
||||
|
||||
/* PyMem_MALLOC(0) means malloc(1). Some systems would return NULL
|
||||
for malloc(0), which would be treated as an error. Some platforms
|
||||
would return a pointer with no memory behind it, which would break
|
||||
pymalloc. To solve these problems, allocate an extra byte. */
|
||||
/* Returns NULL to indicate error if a negative size or size larger than
|
||||
Py_ssize_t can represent is supplied. Helps prevents security holes. */
|
||||
#define PyMem_MALLOC(n) PyMem_Malloc(n)
|
||||
#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n)
|
||||
#define PyMem_FREE(p) PyMem_Free(p)
|
||||
|
||||
/*
|
||||
* Type-oriented memory interface
|
||||
* ==============================
|
||||
|
@ -78,9 +66,6 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr);
|
|||
#define PyMem_New(type, n) \
|
||||
( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
|
||||
( (type *) PyMem_Malloc((n) * sizeof(type)) ) )
|
||||
#define PyMem_NEW(type, n) \
|
||||
( ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
|
||||
( (type *) PyMem_MALLOC((n) * sizeof(type)) ) )
|
||||
|
||||
/*
|
||||
* The value of (p) is always clobbered by this macro regardless of success.
|
||||
|
@ -91,15 +76,16 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr);
|
|||
#define PyMem_Resize(p, type, n) \
|
||||
( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
|
||||
(type *) PyMem_Realloc((p), (n) * sizeof(type)) )
|
||||
#define PyMem_RESIZE(p, type, n) \
|
||||
( (p) = ((size_t)(n) > PY_SSIZE_T_MAX / sizeof(type)) ? NULL : \
|
||||
(type *) PyMem_REALLOC((p), (n) * sizeof(type)) )
|
||||
|
||||
/* PyMem{Del,DEL} are left over from ancient days, and shouldn't be used
|
||||
* anymore. They're just confusing aliases for PyMem_{Free,FREE} now.
|
||||
*/
|
||||
#define PyMem_Del PyMem_Free
|
||||
#define PyMem_DEL PyMem_FREE
|
||||
|
||||
// Deprecated aliases only kept for backward compatibility.
|
||||
#define PyMem_MALLOC(n) PyMem_Malloc(n)
|
||||
#define PyMem_NEW(type, n) PyMem_New(type, n)
|
||||
#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n)
|
||||
#define PyMem_RESIZE(p, type, n) PyMem_Resize(p, type, n)
|
||||
#define PyMem_FREE(p) PyMem_Free(p)
|
||||
#define PyMem_Del(p) PyMem_Free(p)
|
||||
#define PyMem_DEL(p) PyMem_Free(p)
|
||||
|
||||
|
||||
#ifndef Py_LIMITED_API
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue