summaryrefslogtreecommitdiffstats
path: root/Objects/intobject.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2007-07-21 17:22:18 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2007-07-21 17:22:18 (GMT)
commit9f2e346911988cda95fec7c901e8d10d34fa9563 (patch)
tree1632c78fb8e18b2f789102451bedd15996bff6c5 /Objects/intobject.c
parentb972a78e17beeb997d809d87f2e422e6622efd52 (diff)
downloadcpython-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.c27
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;
}