mirror of
https://github.com/python/cpython.git
synced 2025-11-09 14:06:30 +00:00
Charles G Waldman: Doing a PyObject_New then PyMem_DEL causes havoc if
you are trying to use Py_TRACE_REFS.
This commit is contained in:
parent
7da3cc5dfb
commit
c4428c58bb
1 changed files with 3 additions and 3 deletions
|
|
@ -204,7 +204,7 @@ PyPcre_compile(self, args)
|
||||||
&error, &erroroffset, dictionary);
|
&error, &erroroffset, dictionary);
|
||||||
if (rv->regex==NULL)
|
if (rv->regex==NULL)
|
||||||
{
|
{
|
||||||
PyMem_DEL(rv);
|
Py_DECREF(rv);
|
||||||
if (!PyErr_Occurred())
|
if (!PyErr_Occurred())
|
||||||
{
|
{
|
||||||
PyObject *errval = Py_BuildValue("si", error, erroroffset);
|
PyObject *errval = Py_BuildValue("si", error, erroroffset);
|
||||||
|
|
@ -217,7 +217,7 @@ PyPcre_compile(self, args)
|
||||||
if (rv->regex_extra==NULL && error!=NULL)
|
if (rv->regex_extra==NULL && error!=NULL)
|
||||||
{
|
{
|
||||||
PyObject *errval = Py_BuildValue("si", error, 0);
|
PyObject *errval = Py_BuildValue("si", error, 0);
|
||||||
PyMem_DEL(rv);
|
Py_DECREF(rv);
|
||||||
PyErr_SetObject(ErrorObject, errval);
|
PyErr_SetObject(ErrorObject, errval);
|
||||||
Py_XDECREF(errval);
|
Py_XDECREF(errval);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -228,7 +228,7 @@ PyPcre_compile(self, args)
|
||||||
PyObject *errval = Py_BuildValue("si", error, rv->num_groups);
|
PyObject *errval = Py_BuildValue("si", error, rv->num_groups);
|
||||||
PyErr_SetObject(ErrorObject, errval);
|
PyErr_SetObject(ErrorObject, errval);
|
||||||
Py_XDECREF(errval);
|
Py_XDECREF(errval);
|
||||||
PyMem_DEL(rv);
|
Py_DECREF(rv);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return (PyObject *)rv;
|
return (PyObject *)rv;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue