diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2007-07-21 17:22:18 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2007-07-21 17:22:18 (GMT) |
commit | 9f2e346911988cda95fec7c901e8d10d34fa9563 (patch) | |
tree | 1632c78fb8e18b2f789102451bedd15996bff6c5 /Objects/intobject.c | |
parent | b972a78e17beeb997d809d87f2e422e6622efd52 (diff) | |
download | cpython-9f2e346911988cda95fec7c901e8d10d34fa9563.zip cpython-9f2e346911988cda95fec7c901e8d10d34fa9563.tar.gz cpython-9f2e346911988cda95fec7c901e8d10d34fa9563.tar.bz2 |
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.
................
Diffstat (limited to 'Objects/intobject.c')
-rw-r--r-- | Objects/intobject.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/Objects/intobject.c b/Objects/intobject.c index 14f98b9..9455f9e 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -57,8 +57,8 @@ fill_free_list(void) p = &((PyIntBlock *)p)->objects[0]; q = p + N_INTOBJECTS; while (--q > p) - q->ob_type = (struct _typeobject *)(q-1); - q->ob_type = NULL; + Py_Type(q) = (struct _typeobject *)(q-1); + Py_Type(q) = NULL; return p + N_INTOBJECTS - 1; } @@ -103,7 +103,7 @@ PyInt_FromLong(long ival) } /* Inline PyObject_New */ v = free_list; - free_list = (PyIntObject *)v->ob_type; + free_list = (PyIntObject *)Py_Type(v); PyObject_INIT(v, &PyInt_Type); v->ob_ival = ival; return (PyObject *) v; @@ -129,17 +129,17 @@ static void int_dealloc(PyIntObject *v) { if (PyInt_CheckExact(v)) { - v->ob_type = (struct _typeobject *)free_list; + Py_Type(v) = (struct _typeobject *)free_list; free_list = v; } else - v->ob_type->tp_free((PyObject *)v); + Py_Type(v)->tp_free((PyObject *)v); } static void int_free(PyIntObject *v) { - v->ob_type = (struct _typeobject *)free_list; + Py_Type(v) = (struct _typeobject *)free_list; free_list = v; } @@ -153,7 +153,7 @@ PyInt_AsLong(register PyObject *op) if (op && PyInt_Check(op)) return PyInt_AS_LONG((PyIntObject*) op); - if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL || + if (op == NULL || (nb = Py_Type(op)->tp_as_number) == NULL || nb->nb_int == NULL) { PyErr_SetString(PyExc_TypeError, "an integer is required"); return -1; @@ -208,7 +208,7 @@ PyInt_AsSsize_t(register PyObject *op) return PyInt_AsLong(op); #else - if ((nb = op->ob_type->tp_as_number) == NULL || + if ((nb = Py_Type(op)->tp_as_number) == NULL || (nb->nb_int == NULL && nb->nb_long == 0)) { PyErr_SetString(PyExc_TypeError, "an integer is required"); return -1; @@ -257,7 +257,7 @@ PyInt_AsUnsignedLongMask(register PyObject *op) if (op && PyLong_Check(op)) return PyLong_AsUnsignedLongMask(op); - if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL || + if (op == NULL || (nb = Py_Type(op)->tp_as_number) == NULL || nb->nb_int == NULL) { PyErr_SetString(PyExc_TypeError, "an integer is required"); return (unsigned long)-1; @@ -302,7 +302,7 @@ PyInt_AsUnsignedLongLongMask(register PyObject *op) if (op && PyLong_Check(op)) return PyLong_AsUnsignedLongLongMask(op); - if (op == NULL || (nb = op->ob_type->tp_as_number) == NULL || + if (op == NULL || (nb = Py_Type(op)->tp_as_number) == NULL || nb->nb_int == NULL) { PyErr_SetString(PyExc_TypeError, "an integer is required"); return (unsigned PY_LONG_LONG)-1; @@ -1062,8 +1062,7 @@ static PyNumberMethods int_as_number = { }; PyTypeObject PyInt_Type = { - PyObject_HEAD_INIT(&PyType_Type) - 0, + PyVarObject_HEAD_INIT(&PyType_Type, 0) "int", sizeof(PyIntObject), 0, @@ -1116,7 +1115,7 @@ _PyInt_Init(void) return 0; /* PyObject_New is inlined */ v = free_list; - free_list = (PyIntObject *)v->ob_type; + free_list = (PyIntObject *)Py_Type(v); PyObject_INIT(v, &PyInt_Type); v->ob_ival = ival; small_ints[ival + NSMALLNEGINTS] = v; @@ -1169,7 +1168,7 @@ PyInt_Fini(void) ctr++, p++) { if (!PyInt_CheckExact(p) || p->ob_refcnt == 0) { - p->ob_type = (struct _typeobject *) + Py_Type(p) = (struct _typeobject *) free_list; free_list = p; } |