Fix usage in Modules, Objects, and Parser subdirectories.
LOCAL(int)
create_extra(ElementObject* self, PyObject* attrib)
{
- self->extra = PyObject_Malloc(sizeof(ElementObjectExtra));
+ self->extra = PyMem_Malloc(sizeof(ElementObjectExtra));
if (!self->extra) {
PyErr_NoMemory();
return -1;
for (i = 0; i < extra->length; i++)
Py_DECREF(extra->children[i]);
- if (extra->children != extra->_children)
- PyObject_Free(extra->children);
+ if (extra->children != extra->_children) {
+ PyMem_Free(extra->children);
+ }
- PyObject_Free(extra);
+ PyMem_Free(extra);
}
LOCAL(void)
* "children", which needs at least 4 bytes. Although it's a
* false alarm always assume at least one child to be safe.
*/
- children = PyObject_Realloc(self->extra->children,
- size * sizeof(PyObject*));
- if (!children)
+ children = PyMem_Realloc(self->extra->children,
+ size * sizeof(PyObject*));
+ if (!children) {
goto nomemory;
+ }
} else {
- children = PyObject_Malloc(size * sizeof(PyObject*));
- if (!children)
+ children = PyMem_Malloc(size * sizeof(PyObject*));
+ if (!children) {
goto nomemory;
+ }
/* copy existing children from static area to malloc buffer */
memcpy(children, self->extra->children,
self->extra->length * sizeof(PyObject*));
#define EXPAT(st, func) ((st)->expat_capi->func)
static XML_Memory_Handling_Suite ExpatMemoryHandler = {
- PyObject_Malloc, PyObject_Realloc, PyObject_Free};
+ PyMem_Malloc, PyMem_Realloc, PyMem_Free};
typedef struct {
PyObject_HEAD
/* install new repeat context */
/* TODO(https://github.com/python/cpython/issues/67877): Fix this
* potential memory leak. */
- ctx->u.rep = (SRE_REPEAT*) PyObject_Malloc(sizeof(*ctx->u.rep));
+ ctx->u.rep = (SRE_REPEAT*) PyMem_Malloc(sizeof(*ctx->u.rep));
if (!ctx->u.rep) {
PyErr_NoMemory();
RETURN_FAILURE;
state->ptr = ptr;
DO_JUMP(JUMP_REPEAT, jump_repeat, pattern+pattern[0]);
state->repeat = ctx->u.rep->prev;
- PyObject_Free(ctx->u.rep);
+ PyMem_Free(ctx->u.rep);
if (ret) {
RETURN_ON_ERROR(ret);
goto error_exit;
}
if (n > NUM_STACK_ELEMS) {
- diffs = (double *) PyObject_Malloc(n * sizeof(double));
+ diffs = (double *) PyMem_Malloc(n * sizeof(double));
if (diffs == NULL) {
PyErr_NoMemory();
goto error_exit;
}
result = vector_norm(n, diffs, max, found_nan);
if (diffs != diffs_on_stack) {
- PyObject_Free(diffs);
+ PyMem_Free(diffs);
}
if (p_allocated) {
Py_DECREF(p);
error_exit:
if (diffs != diffs_on_stack) {
- PyObject_Free(diffs);
+ PyMem_Free(diffs);
}
if (p_allocated) {
Py_DECREF(p);
double *coordinates = coord_on_stack;
if (nargs > NUM_STACK_ELEMS) {
- coordinates = (double *) PyObject_Malloc(nargs * sizeof(double));
+ coordinates = (double *) PyMem_Malloc(nargs * sizeof(double));
if (coordinates == NULL) {
return PyErr_NoMemory();
}
}
result = vector_norm(nargs, coordinates, max, found_nan);
if (coordinates != coord_on_stack) {
- PyObject_Free(coordinates);
+ PyMem_Free(coordinates);
}
return PyFloat_FromDouble(result);
error_exit:
if (coordinates != coord_on_stack) {
- PyObject_Free(coordinates);
+ PyMem_Free(coordinates);
}
return NULL;
}
#define XML_COMBINED_VERSION (10000*XML_MAJOR_VERSION+100*XML_MINOR_VERSION+XML_MICRO_VERSION)
static XML_Memory_Handling_Suite ExpatMemoryHandler = {
- PyObject_Malloc, PyObject_Realloc, PyObject_Free};
+ PyMem_Malloc, PyMem_Realloc, PyMem_Free};
enum HandlerTypes {
StartElement,
}
else {
alloc = size + 1;
- new->ob_bytes = PyObject_Malloc(alloc);
+ new->ob_bytes = PyMem_Malloc(alloc);
if (new->ob_bytes == NULL) {
Py_DECREF(new);
return PyErr_NoMemory();
}
if (logical_offset > 0) {
- sval = PyObject_Malloc(alloc);
+ sval = PyMem_Malloc(alloc);
if (sval == NULL) {
PyErr_NoMemory();
return -1;
}
memcpy(sval, PyByteArray_AS_STRING(self),
Py_MIN((size_t)requested_size, (size_t)Py_SIZE(self)));
- PyObject_Free(obj->ob_bytes);
+ PyMem_Free(obj->ob_bytes);
}
else {
- sval = PyObject_Realloc(obj->ob_bytes, alloc);
+ sval = PyMem_Realloc(obj->ob_bytes, alloc);
if (sval == NULL) {
PyErr_NoMemory();
return -1;
}
newsize += 6 + length * 4;
- buffer = PyObject_Malloc(newsize);
+ buffer = PyMem_Malloc(newsize);
if (buffer == NULL) {
PyErr_NoMemory();
return NULL;
}
v = PyUnicode_FromStringAndSize(buffer, p - buffer);
- PyObject_Free(buffer);
+ PyMem_Free(buffer);
return v;
}
PyErr_Print();
}
if (self->ob_bytes != 0) {
- PyObject_Free(self->ob_bytes);
+ PyMem_Free(self->ob_bytes);
}
Py_TYPE(self)->tp_free((PyObject *)self);
}
// Silently truncate the docstring if it contains a null byte
Py_ssize_t size = strlen(doc_str) + 1;
- char *tp_doc = (char *)PyObject_Malloc(size);
+ char *tp_doc = (char *)PyMem_Malloc(size);
if (tp_doc == NULL) {
PyErr_NoMemory();
return -1;
goto finally;
}
if (slot->pfunc == NULL) {
- PyObject_Free(tp_doc);
+ PyMem_Free(tp_doc);
tp_doc = NULL;
}
else {
size_t len = strlen(slot->pfunc)+1;
- tp_doc = PyObject_Malloc(len);
+ tp_doc = PyMem_Malloc(len);
if (tp_doc == NULL) {
PyErr_NoMemory();
goto finally;
Py_CLEAR(res);
}
Py_XDECREF(bases);
- PyObject_Free(tp_doc);
+ PyMem_Free(tp_doc);
Py_XDECREF(ht_name);
PyMem_Free(_ht_tpname);
return (PyObject*)res;
/* A type's tp_doc is heap allocated, unlike the tp_doc slots
* of most other objects. It's okay to cast it to char *.
*/
- PyObject_Free((char *)type->tp_doc);
+ PyMem_Free((char *)type->tp_doc);
PyHeapTypeObject *et = (PyHeapTypeObject *)type;
Py_XDECREF(et->ht_name);
if (hash_detected) {
Py_ssize_t input_length = tok_mode->last_expr_size - tok_mode->last_expr_end;
- char *result = (char *)PyObject_Malloc((input_length + 1) * sizeof(char));
+ char *result = (char *)PyMem_Malloc((input_length + 1) * sizeof(char));
if (!result) {
return -1;
}
result[j] = '\0'; // Null-terminate the result string
res = PyUnicode_DecodeUTF8(result, j, NULL);
- PyObject_Free(result);
+ PyMem_Free(result);
} else {
res = PyUnicode_DecodeUTF8(
tok_mode->last_expr_buffer,