Use Py_ssize_t for counts and sizes.

Convert Py_ssize_t using PyInt_FromSsize_t
This commit is contained in:
Martin v. Löwis 2006-02-16 14:32:27 +00:00
parent ad0a4629be
commit eb079f1c25
10 changed files with 33 additions and 31 deletions

View File

@ -1170,7 +1170,7 @@ PySequence_Repeat(PyObject *o, Py_ssize_t count)
to nb_multiply if o appears to be a sequence. */ to nb_multiply if o appears to be a sequence. */
if (PySequence_Check(o)) { if (PySequence_Check(o)) {
PyObject *n, *result; PyObject *n, *result;
n = PyInt_FromLong(count); n = PyInt_FromSsize_t(count);
if (n == NULL) if (n == NULL)
return NULL; return NULL;
result = binary_op1(o, n, NB_SLOT(nb_multiply)); result = binary_op1(o, n, NB_SLOT(nb_multiply));
@ -1222,7 +1222,7 @@ PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)
if (PySequence_Check(o)) { if (PySequence_Check(o)) {
PyObject *n, *result; PyObject *n, *result;
n = PyInt_FromLong(count); n = PyInt_FromSsize_t(count);
if (n == NULL) if (n == NULL)
return NULL; return NULL;
result = binary_iop1(o, n, NB_SLOT(nb_inplace_multiply), result = binary_iop1(o, n, NB_SLOT(nb_inplace_multiply),

View File

@ -159,14 +159,14 @@ PyTypeObject PyEnum_Type = {
typedef struct { typedef struct {
PyObject_HEAD PyObject_HEAD
long index; Py_ssize_t index;
PyObject* seq; PyObject* seq;
} reversedobject; } reversedobject;
static PyObject * static PyObject *
reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds) reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{ {
long n; Py_ssize_t n;
PyObject *seq; PyObject *seq;
reversedobject *ro; reversedobject *ro;
@ -249,7 +249,7 @@ reversed_len(reversedobject *ro)
if (seqsize == -1) if (seqsize == -1)
return NULL; return NULL;
position = ro->index + 1; position = ro->index + 1;
return PyInt_FromLong((seqsize < position) ? 0 : position); return PyInt_FromSsize_t((seqsize < position) ? 0 : position);
} }
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");

View File

@ -82,7 +82,7 @@ iter_len(seqiterobject *it)
return NULL; return NULL;
len = seqsize - it->it_index; len = seqsize - it->it_index;
if (len >= 0) if (len >= 0)
return PyInt_FromLong(len); return PyInt_FromSsize_t(len);
} }
return PyInt_FromLong(0); return PyInt_FromLong(0);
} }

View File

@ -2504,13 +2504,13 @@ static int
list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value) list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
{ {
if (PyInt_Check(item)) { if (PyInt_Check(item)) {
long i = PyInt_AS_LONG(item); Py_ssize_t i = PyInt_AS_LONG(item);
if (i < 0) if (i < 0)
i += PyList_GET_SIZE(self); i += PyList_GET_SIZE(self);
return list_ass_item(self, i, value); return list_ass_item(self, i, value);
} }
else if (PyLong_Check(item)) { else if (PyLong_Check(item)) {
long i = PyLong_AsLong(item); Py_ssize_t i = PyInt_AsSsize_t(item);
if (i == -1 && PyErr_Occurred()) if (i == -1 && PyErr_Occurred())
return -1; return -1;
if (i < 0) if (i < 0)
@ -2818,7 +2818,7 @@ PyTypeObject PyListIter_Type = {
typedef struct { typedef struct {
PyObject_HEAD PyObject_HEAD
long it_index; Py_ssize_t it_index;
PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ PyListObject *it_seq; /* Set to NULL when iterator is exhausted */
} listreviterobject; } listreviterobject;
@ -2860,7 +2860,7 @@ static PyObject *
listreviter_next(listreviterobject *it) listreviter_next(listreviterobject *it)
{ {
PyObject *item; PyObject *item;
long index = it->it_index; Py_ssize_t index = it->it_index;
PyListObject *seq = it->it_seq; PyListObject *seq = it->it_seq;
if (index>=0 && index < PyList_GET_SIZE(seq)) { if (index>=0 && index < PyList_GET_SIZE(seq)) {

View File

@ -65,7 +65,7 @@ PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw)
PyCFunctionObject* f = (PyCFunctionObject*)func; PyCFunctionObject* f = (PyCFunctionObject*)func;
PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyCFunction meth = PyCFunction_GET_FUNCTION(func);
PyObject *self = PyCFunction_GET_SELF(func); PyObject *self = PyCFunction_GET_SELF(func);
long size; Py_ssize_t size;
switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)) { switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)) {
case METH_VARARGS: case METH_VARARGS:
@ -81,7 +81,7 @@ PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw)
if (size == 0) if (size == 0)
return (*meth)(self, NULL); return (*meth)(self, NULL);
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"%.200s() takes no arguments (%ld given)", "%.200s() takes no arguments (%zd given)",
f->m_ml->ml_name, size); f->m_ml->ml_name, size);
return NULL; return NULL;
} }
@ -92,7 +92,7 @@ PyCFunction_Call(PyObject *func, PyObject *arg, PyObject *kw)
if (size == 1) if (size == 1)
return (*meth)(self, PyTuple_GET_ITEM(arg, 0)); return (*meth)(self, PyTuple_GET_ITEM(arg, 0));
PyErr_Format(PyExc_TypeError, PyErr_Format(PyExc_TypeError,
"%.200s() takes exactly one argument (%ld given)", "%.200s() takes exactly one argument (%zd given)",
f->m_ml->ml_name, size); f->m_ml->ml_name, size);
return NULL; return NULL;
} }

View File

@ -1030,7 +1030,7 @@ string_contains(PyObject *a, PyObject *el)
const char *sub = PyString_AS_STRING(el); const char *sub = PyString_AS_STRING(el);
char *last; char *last;
Py_ssize_t len_sub = PyString_GET_SIZE(el); Py_ssize_t len_sub = PyString_GET_SIZE(el);
int shortsub; Py_ssize_t shortsub;
char firstchar, lastchar; char firstchar, lastchar;
if (!PyString_CheckExact(el)) { if (!PyString_CheckExact(el)) {
@ -2942,11 +2942,11 @@ PyDoc_STRVAR(zfill__doc__,
static PyObject * static PyObject *
string_zfill(PyStringObject *self, PyObject *args) string_zfill(PyStringObject *self, PyObject *args)
{ {
long fill; Py_ssize_t fill;
PyObject *s; PyObject *s;
char *p; char *p;
int width; long width;
if (!PyArg_ParseTuple(args, "l:zfill", &width)) if (!PyArg_ParseTuple(args, "l:zfill", &width))
return NULL; return NULL;
@ -3886,7 +3886,7 @@ PyObject *
PyString_Format(PyObject *format, PyObject *args) PyString_Format(PyObject *format, PyObject *args)
{ {
char *fmt, *res; char *fmt, *res;
int arglen, argidx; Py_ssize_t arglen, argidx;
Py_ssize_t reslen, rescnt, fmtcnt; Py_ssize_t reslen, rescnt, fmtcnt;
int args_owned = 0; int args_owned = 0;
PyObject *result, *orig_args; PyObject *result, *orig_args;
@ -4294,7 +4294,7 @@ PyString_Format(PyObject *format, PyObject *args)
/* Fiddle args right (remove the first argidx arguments) */ /* Fiddle args right (remove the first argidx arguments) */
if (PyTuple_Check(orig_args) && argidx > 0) { if (PyTuple_Check(orig_args) && argidx > 0) {
PyObject *v; PyObject *v;
int n = PyTuple_GET_SIZE(orig_args) - argidx; Py_ssize_t n = PyTuple_GET_SIZE(orig_args) - argidx;
v = PyTuple_New(n); v = PyTuple_New(n);
if (v == NULL) if (v == NULL)
goto error; goto error;

View File

@ -247,7 +247,7 @@ structseq_reduce(PyStructSequence* self)
PyObject* tup; PyObject* tup;
PyObject* dict; PyObject* dict;
PyObject* result; PyObject* result;
long n_fields, n_visible_fields, n_unnamed_fields; Py_ssize_t n_fields, n_visible_fields, n_unnamed_fields;
int i; int i;
n_fields = REAL_SIZE(self); n_fields = REAL_SIZE(self);

View File

@ -278,7 +278,8 @@ tuplehash(PyTupleObject *v)
if (y == -1) if (y == -1)
return -1; return -1;
x = (x ^ y) * mult; x = (x ^ y) * mult;
mult += 82520L + len + len; /* the cast might truncate len; that doesn't change hash stability */
mult += (long)(82520L + len + len);
} }
x += 97531L; x += 97531L;
if (x == -1) if (x == -1)
@ -850,10 +851,10 @@ tupleiter_next(tupleiterobject *it)
static PyObject * static PyObject *
tupleiter_len(tupleiterobject *it) tupleiter_len(tupleiterobject *it)
{ {
long len = 0; Py_ssize_t len = 0;
if (it->it_seq) if (it->it_seq)
len = PyTuple_GET_SIZE(it->it_seq) - it->it_index; len = PyTuple_GET_SIZE(it->it_seq) - it->it_index;
return PyInt_FromLong(len); return PyInt_FromSsize_t(len);
} }
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it))."); PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");

View File

@ -1561,11 +1561,11 @@ valid_identifier(PyObject *s)
/* Replace Unicode objects in slots. */ /* Replace Unicode objects in slots. */
static PyObject * static PyObject *
_unicode_to_string(PyObject *slots, int nslots) _unicode_to_string(PyObject *slots, Py_ssize_t nslots)
{ {
PyObject *tmp = slots; PyObject *tmp = slots;
PyObject *o, *o1; PyObject *o, *o1;
int i; Py_ssize_t i;
ssizessizeargfunc copy = slots->ob_type->tp_as_sequence->sq_slice; ssizessizeargfunc copy = slots->ob_type->tp_as_sequence->sq_slice;
for (i = 0; i < nslots; i++) { for (i = 0; i < nslots; i++) {
if (PyUnicode_Check(o = PyTuple_GET_ITEM(tmp, i))) { if (PyUnicode_Check(o = PyTuple_GET_ITEM(tmp, i))) {
@ -2428,7 +2428,7 @@ static int
same_slots_added(PyTypeObject *a, PyTypeObject *b) same_slots_added(PyTypeObject *a, PyTypeObject *b)
{ {
PyTypeObject *base = a->tp_base; PyTypeObject *base = a->tp_base;
int size; Py_ssize_t size;
if (base != b->tp_base) if (base != b->tp_base)
return 0; return 0;
@ -2904,7 +2904,7 @@ add_getset(PyTypeObject *type, PyGetSetDef *gsp)
static void static void
inherit_special(PyTypeObject *type, PyTypeObject *base) inherit_special(PyTypeObject *type, PyTypeObject *base)
{ {
int oldsize, newsize; Py_ssize_t oldsize, newsize;
/* Special flag magic */ /* Special flag magic */
if (!type->tp_as_buffer && base->tp_as_buffer) { if (!type->tp_as_buffer && base->tp_as_buffer) {
@ -3316,7 +3316,8 @@ PyType_Ready(PyTypeObject *type)
static int static int
add_subclass(PyTypeObject *base, PyTypeObject *type) add_subclass(PyTypeObject *base, PyTypeObject *type)
{ {
int i; Py_ssize_t i;
int result;
PyObject *list, *ref, *new; PyObject *list, *ref, *new;
list = base->tp_subclasses; list = base->tp_subclasses;
@ -3334,9 +3335,9 @@ add_subclass(PyTypeObject *base, PyTypeObject *type)
if (PyWeakref_GET_OBJECT(ref) == Py_None) if (PyWeakref_GET_OBJECT(ref) == Py_None)
return PyList_SetItem(list, i, new); return PyList_SetItem(list, i, new);
} }
i = PyList_Append(list, new); result = PyList_Append(list, new);
Py_DECREF(new); Py_DECREF(new);
return i; return result;
} }
static void static void
@ -4160,7 +4161,7 @@ slot_sq_item(PyObject *self, Py_ssize_t i)
return NULL; return NULL;
} }
} }
ival = PyInt_FromLong(i); ival = PyInt_FromSsize_t(i);
if (ival != NULL) { if (ival != NULL) {
args = PyTuple_New(1); args = PyTuple_New(1);
if (args != NULL) { if (args != NULL) {

View File

@ -6541,7 +6541,7 @@ unicode_buffer_getsegcount(PyUnicodeObject *self,
return 1; return 1;
} }
static int static Py_ssize_t
unicode_buffer_getcharbuf(PyUnicodeObject *self, unicode_buffer_getcharbuf(PyUnicodeObject *self,
Py_ssize_t index, Py_ssize_t index,
const void **ptr) const void **ptr)