mirror of https://github.com/python/cpython
Use Py_ssize_t for counts and sizes.
Convert Py_ssize_t using PyInt_FromSsize_t
This commit is contained in:
parent
ad0a4629be
commit
eb079f1c25
|
@ -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),
|
||||||
|
|
|
@ -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)).");
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)) {
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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)).");
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue