diff options
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/exceptions.c | 2 | ||||
-rw-r--r-- | Objects/typeobject.c | 9 | ||||
-rw-r--r-- | Objects/weakrefobject.c | 8 |
3 files changed, 14 insertions, 5 deletions
diff --git a/Objects/exceptions.c b/Objects/exceptions.c index d8bfb31..ea8a310 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -3729,7 +3729,7 @@ _PyErr_TrySetFromCause(const char *format, ...) base_exc_size = _PyExc_BaseException.tp_basicsize; same_basic_size = ( caught_type_size == base_exc_size || - (PyType_SUPPORTS_WEAKREFS(caught_type) && + (_PyType_SUPPORTS_WEAKREFS(caught_type) && (caught_type_size == base_exc_size + (Py_ssize_t)sizeof(PyObject *)) ) ); diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 4527593..39e8b46 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -2473,12 +2473,21 @@ type_init(PyObject *cls, PyObject *args, PyObject *kwds) return 0; } + unsigned long PyType_GetFlags(PyTypeObject *type) { return type->tp_flags; } + +int +PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) +{ + return _PyType_SUPPORTS_WEAKREFS(type); +} + + /* Determine the most derived metatype. */ PyTypeObject * _PyType_CalculateMetaclass(PyTypeObject *metatype, PyObject *bases) diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c index b992040..76121f9 100644 --- a/Objects/weakrefobject.c +++ b/Objects/weakrefobject.c @@ -299,7 +299,7 @@ weakref___new__(PyTypeObject *type, PyObject *args, PyObject *kwargs) PyWeakReference *ref, *proxy; PyWeakReference **list; - if (!PyType_SUPPORTS_WEAKREFS(Py_TYPE(ob))) { + if (!_PyType_SUPPORTS_WEAKREFS(Py_TYPE(ob))) { PyErr_Format(PyExc_TypeError, "cannot create weak reference to '%s' object", Py_TYPE(ob)->tp_name); @@ -794,7 +794,7 @@ PyWeakref_NewRef(PyObject *ob, PyObject *callback) PyWeakReference **list; PyWeakReference *ref, *proxy; - if (!PyType_SUPPORTS_WEAKREFS(Py_TYPE(ob))) { + if (!_PyType_SUPPORTS_WEAKREFS(Py_TYPE(ob))) { PyErr_Format(PyExc_TypeError, "cannot create weak reference to '%s' object", Py_TYPE(ob)->tp_name); @@ -853,7 +853,7 @@ PyWeakref_NewProxy(PyObject *ob, PyObject *callback) PyWeakReference **list; PyWeakReference *ref, *proxy; - if (!PyType_SUPPORTS_WEAKREFS(Py_TYPE(ob))) { + if (!_PyType_SUPPORTS_WEAKREFS(Py_TYPE(ob))) { PyErr_Format(PyExc_TypeError, "cannot create weak reference to '%s' object", Py_TYPE(ob)->tp_name); @@ -949,7 +949,7 @@ PyObject_ClearWeakRefs(PyObject *object) PyWeakReference **list; if (object == NULL - || !PyType_SUPPORTS_WEAKREFS(Py_TYPE(object)) + || !_PyType_SUPPORTS_WEAKREFS(Py_TYPE(object)) || Py_REFCNT(object) != 0) { PyErr_BadInternalCall(); |