mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
Merged revisions 56467-56482 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/p3yk ................ r56477 | martin.v.loewis | 2007-07-21 09:04:38 +0200 (Sa, 21 Jul 2007) | 11 lines Merged revisions 56466-56476 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r56476 | martin.v.loewis | 2007-07-21 08:55:02 +0200 (Sa, 21 Jul 2007) | 4 lines PEP 3123: Provide forward compatibility with Python 3.0, while keeping backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and PyVarObject_HEAD_INIT. ........ ................ r56478 | martin.v.loewis | 2007-07-21 09:47:23 +0200 (Sa, 21 Jul 2007) | 2 lines PEP 3123: Use proper C inheritance for PyObject. ................ r56479 | martin.v.loewis | 2007-07-21 10:06:55 +0200 (Sa, 21 Jul 2007) | 3 lines Add longintrepr.h to Python.h, so that the compiler can see that PyFalse is really some kind of PyObject*. ................ r56480 | martin.v.loewis | 2007-07-21 10:47:18 +0200 (Sa, 21 Jul 2007) | 2 lines Qualify SHIFT, MASK, BASE. ................ r56482 | martin.v.loewis | 2007-07-21 19:10:57 +0200 (Sa, 21 Jul 2007) | 2 lines Correctly refer to _ob_next. ................
This commit is contained in:
parent
b972a78e17
commit
9f2e346911
134 changed files with 1388 additions and 1577 deletions
|
@ -105,7 +105,7 @@ weakref_dealloc(PyObject *self)
|
|||
{
|
||||
PyObject_GC_UnTrack(self);
|
||||
clear_weakref((PyWeakReference *) self);
|
||||
self->ob_type->tp_free(self);
|
||||
Py_Type(self)->tp_free(self);
|
||||
}
|
||||
|
||||
|
||||
|
@ -172,7 +172,7 @@ weakref_repr(PyWeakReference *self)
|
|||
name ? "<weakref at %p; to '%.50s' at %p (%s)>"
|
||||
: "<weakref at %p; to '%.50s' at %p>",
|
||||
self,
|
||||
PyWeakref_GET_OBJECT(self)->ob_type->tp_name,
|
||||
Py_Type(PyWeakref_GET_OBJECT(self))->tp_name,
|
||||
PyWeakref_GET_OBJECT(self),
|
||||
name);
|
||||
Py_XDECREF(nameobj);
|
||||
|
@ -276,10 +276,10 @@ weakref___new__(PyTypeObject *type, PyObject *args, PyObject *kwargs)
|
|||
PyWeakReference *ref, *proxy;
|
||||
PyWeakReference **list;
|
||||
|
||||
if (!PyType_SUPPORTS_WEAKREFS(ob->ob_type)) {
|
||||
if (!PyType_SUPPORTS_WEAKREFS(Py_Type(ob))) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"cannot create weak reference to '%s' object",
|
||||
ob->ob_type->tp_name);
|
||||
Py_Type(ob)->tp_name);
|
||||
return NULL;
|
||||
}
|
||||
if (callback == Py_None)
|
||||
|
@ -334,8 +334,7 @@ weakref___init__(PyObject *self, PyObject *args, PyObject *kwargs)
|
|||
|
||||
PyTypeObject
|
||||
_PyWeakref_RefType = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0,
|
||||
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
||||
"weakref",
|
||||
sizeof(PyWeakReference),
|
||||
0,
|
||||
|
@ -449,7 +448,7 @@ proxy_repr(PyWeakReference *proxy)
|
|||
char buf[160];
|
||||
PyOS_snprintf(buf, sizeof(buf),
|
||||
"<weakproxy at %p to %.100s at %p>", proxy,
|
||||
PyWeakref_GET_OBJECT(proxy)->ob_type->tp_name,
|
||||
Py_Type(PyWeakref_GET_OBJECT(proxy))->tp_name,
|
||||
PyWeakref_GET_OBJECT(proxy));
|
||||
return PyUnicode_FromString(buf);
|
||||
}
|
||||
|
@ -644,8 +643,7 @@ static PyMappingMethods proxy_as_mapping = {
|
|||
|
||||
PyTypeObject
|
||||
_PyWeakref_ProxyType = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0,
|
||||
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
||||
"weakproxy",
|
||||
sizeof(PyWeakReference),
|
||||
0,
|
||||
|
@ -678,8 +676,7 @@ _PyWeakref_ProxyType = {
|
|||
|
||||
PyTypeObject
|
||||
_PyWeakref_CallableProxyType = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0,
|
||||
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
||||
"weakcallableproxy",
|
||||
sizeof(PyWeakReference),
|
||||
0,
|
||||
|
@ -718,10 +715,10 @@ PyWeakref_NewRef(PyObject *ob, PyObject *callback)
|
|||
PyWeakReference **list;
|
||||
PyWeakReference *ref, *proxy;
|
||||
|
||||
if (!PyType_SUPPORTS_WEAKREFS(ob->ob_type)) {
|
||||
if (!PyType_SUPPORTS_WEAKREFS(Py_Type(ob))) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"cannot create weak reference to '%s' object",
|
||||
ob->ob_type->tp_name);
|
||||
Py_Type(ob)->tp_name);
|
||||
return NULL;
|
||||
}
|
||||
list = GET_WEAKREFS_LISTPTR(ob);
|
||||
|
@ -777,10 +774,10 @@ PyWeakref_NewProxy(PyObject *ob, PyObject *callback)
|
|||
PyWeakReference **list;
|
||||
PyWeakReference *ref, *proxy;
|
||||
|
||||
if (!PyType_SUPPORTS_WEAKREFS(ob->ob_type)) {
|
||||
if (!PyType_SUPPORTS_WEAKREFS(Py_Type(ob))) {
|
||||
PyErr_Format(PyExc_TypeError,
|
||||
"cannot create weak reference to '%s' object",
|
||||
ob->ob_type->tp_name);
|
||||
Py_Type(ob)->tp_name);
|
||||
return NULL;
|
||||
}
|
||||
list = GET_WEAKREFS_LISTPTR(ob);
|
||||
|
@ -803,9 +800,9 @@ PyWeakref_NewProxy(PyObject *ob, PyObject *callback)
|
|||
PyWeakReference *prev;
|
||||
|
||||
if (PyCallable_Check(ob))
|
||||
result->ob_type = &_PyWeakref_CallableProxyType;
|
||||
Py_Type(result) = &_PyWeakref_CallableProxyType;
|
||||
else
|
||||
result->ob_type = &_PyWeakref_ProxyType;
|
||||
Py_Type(result) = &_PyWeakref_ProxyType;
|
||||
get_basic_refs(*list, &ref, &proxy);
|
||||
if (callback == NULL) {
|
||||
if (proxy != NULL) {
|
||||
|
@ -870,7 +867,7 @@ PyObject_ClearWeakRefs(PyObject *object)
|
|||
PyWeakReference **list;
|
||||
|
||||
if (object == NULL
|
||||
|| !PyType_SUPPORTS_WEAKREFS(object->ob_type)
|
||||
|| !PyType_SUPPORTS_WEAKREFS(Py_Type(object))
|
||||
|| object->ob_refcnt != 0) {
|
||||
PyErr_BadInternalCall();
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue