bpo-43962: Fix _PyInterpreterState_IDIncref() (GH-25683)

_PyInterpreterState_IDIncref() now calls
_PyInterpreterState_IDInitref() and always increments id_refcount.
This commit is contained in:
Victor Stinner 2021-04-28 13:40:44 +02:00 committed by GitHub
parent 21b02b5f40
commit 32c5a17444
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 10 deletions

View file

@ -24,15 +24,21 @@ newinterpid(PyTypeObject *cls, int64_t id, int force)
}
}
if (interp != NULL) {
if (_PyInterpreterState_IDIncref(interp) < 0) {
return NULL;
}
}
interpid *self = PyObject_New(interpid, cls);
if (self == NULL) {
if (interp != NULL) {
_PyInterpreterState_IDDecref(interp);
}
return NULL;
}
self->id = id;
if (interp != NULL) {
_PyInterpreterState_IDIncref(interp);
}
return self;
}