mirror of
https://github.com/python/cpython.git
synced 2025-09-28 19:25:27 +00:00
[3.9] bpo-44562: Remove invalid PyObject_GC_Del from error path of types.GenericAlias … (GH-27016) (GH-27028)
This commit is contained in:
parent
9f47d872db
commit
51a29c42f1
2 changed files with 6 additions and 4 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
Remove uses of :c:func:`PyObject_GC_Del` in error path when initializing
|
||||||
|
:class:`types.GenericAlias`.
|
|
@ -602,7 +602,7 @@ ga_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (!setup_ga(self, origin, arguments)) {
|
if (!setup_ga(self, origin, arguments)) {
|
||||||
type->tp_free((PyObject *)self);
|
Py_DECREF(self);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return (PyObject *)self;
|
return (PyObject *)self;
|
||||||
|
@ -640,14 +640,14 @@ PyTypeObject Py_GenericAliasType = {
|
||||||
PyObject *
|
PyObject *
|
||||||
Py_GenericAlias(PyObject *origin, PyObject *args)
|
Py_GenericAlias(PyObject *origin, PyObject *args)
|
||||||
{
|
{
|
||||||
gaobject *alias = PyObject_GC_New(gaobject, &Py_GenericAliasType);
|
gaobject *alias = (gaobject*) PyType_GenericAlloc(
|
||||||
|
(PyTypeObject *)&Py_GenericAliasType, 0);
|
||||||
if (alias == NULL) {
|
if (alias == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (!setup_ga(alias, origin, args)) {
|
if (!setup_ga(alias, origin, args)) {
|
||||||
PyObject_GC_Del((PyObject *)alias);
|
Py_DECREF(alias);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
_PyObject_GC_TRACK(alias);
|
|
||||||
return (PyObject *)alias;
|
return (PyObject *)alias;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue