to nb_multiply if o appears to be a sequence. */
if (PySequence_Check(o)) {
PyObject *n, *result;
- n = PyInt_FromLong(count);
+ n = PyInt_FromSsize_t(count);
if (n == NULL)
return NULL;
result = binary_op1(o, n, NB_SLOT(nb_multiply));
if (PySequence_Check(o)) {
PyObject *n, *result;
- n = PyInt_FromLong(count);
+ n = PyInt_FromSsize_t(count);
if (n == NULL)
return NULL;
result = binary_iop1(o, n, NB_SLOT(nb_inplace_multiply),
typedef struct {
PyObject_HEAD
- long index;
+ Py_ssize_t index;
PyObject* seq;
} reversedobject;
static PyObject *
reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
- long n;
+ Py_ssize_t n;
PyObject *seq;
reversedobject *ro;
if (seqsize == -1)
return NULL;
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)).");
return NULL;
len = seqsize - it->it_index;
if (len >= 0)
- return PyInt_FromLong(len);
+ return PyInt_FromSsize_t(len);
}
return PyInt_FromLong(0);
}
list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
{
if (PyInt_Check(item)) {
- long i = PyInt_AS_LONG(item);
+ Py_ssize_t i = PyInt_AS_LONG(item);
if (i < 0)
i += PyList_GET_SIZE(self);
return list_ass_item(self, i, value);
}
else if (PyLong_Check(item)) {
- long i = PyLong_AsLong(item);
+ Py_ssize_t i = PyInt_AsSsize_t(item);
if (i == -1 && PyErr_Occurred())
return -1;
if (i < 0)
typedef struct {
PyObject_HEAD
- long it_index;
+ Py_ssize_t it_index;
PyListObject *it_seq; /* Set to NULL when iterator is exhausted */
} listreviterobject;
listreviter_next(listreviterobject *it)
{
PyObject *item;
- long index = it->it_index;
+ Py_ssize_t index = it->it_index;
PyListObject *seq = it->it_seq;
if (index>=0 && index < PyList_GET_SIZE(seq)) {
PyCFunctionObject* f = (PyCFunctionObject*)func;
PyCFunction meth = PyCFunction_GET_FUNCTION(func);
PyObject *self = PyCFunction_GET_SELF(func);
- long size;
+ Py_ssize_t size;
switch (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)) {
case METH_VARARGS:
if (size == 0)
return (*meth)(self, NULL);
PyErr_Format(PyExc_TypeError,
- "%.200s() takes no arguments (%ld given)",
+ "%.200s() takes no arguments (%zd given)",
f->m_ml->ml_name, size);
return NULL;
}
if (size == 1)
return (*meth)(self, PyTuple_GET_ITEM(arg, 0));
PyErr_Format(PyExc_TypeError,
- "%.200s() takes exactly one argument (%ld given)",
+ "%.200s() takes exactly one argument (%zd given)",
f->m_ml->ml_name, size);
return NULL;
}
const char *sub = PyString_AS_STRING(el);
char *last;
Py_ssize_t len_sub = PyString_GET_SIZE(el);
- int shortsub;
+ Py_ssize_t shortsub;
char firstchar, lastchar;
if (!PyString_CheckExact(el)) {
static PyObject *
string_zfill(PyStringObject *self, PyObject *args)
{
- long fill;
+ Py_ssize_t fill;
PyObject *s;
char *p;
- int width;
+ long width;
if (!PyArg_ParseTuple(args, "l:zfill", &width))
return NULL;
PyString_Format(PyObject *format, PyObject *args)
{
char *fmt, *res;
- int arglen, argidx;
+ Py_ssize_t arglen, argidx;
Py_ssize_t reslen, rescnt, fmtcnt;
int args_owned = 0;
PyObject *result, *orig_args;
/* Fiddle args right (remove the first argidx arguments) */
if (PyTuple_Check(orig_args) && argidx > 0) {
PyObject *v;
- int n = PyTuple_GET_SIZE(orig_args) - argidx;
+ Py_ssize_t n = PyTuple_GET_SIZE(orig_args) - argidx;
v = PyTuple_New(n);
if (v == NULL)
goto error;
PyObject* tup;
PyObject* dict;
PyObject* result;
- long n_fields, n_visible_fields, n_unnamed_fields;
+ Py_ssize_t n_fields, n_visible_fields, n_unnamed_fields;
int i;
n_fields = REAL_SIZE(self);
if (y == -1)
return -1;
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;
if (x == -1)
static PyObject *
tupleiter_len(tupleiterobject *it)
{
- long len = 0;
+ Py_ssize_t len = 0;
if (it->it_seq)
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)).");
/* Replace Unicode objects in slots. */
static PyObject *
-_unicode_to_string(PyObject *slots, int nslots)
+_unicode_to_string(PyObject *slots, Py_ssize_t nslots)
{
PyObject *tmp = slots;
PyObject *o, *o1;
- int i;
+ Py_ssize_t i;
ssizessizeargfunc copy = slots->ob_type->tp_as_sequence->sq_slice;
for (i = 0; i < nslots; i++) {
if (PyUnicode_Check(o = PyTuple_GET_ITEM(tmp, i))) {
same_slots_added(PyTypeObject *a, PyTypeObject *b)
{
PyTypeObject *base = a->tp_base;
- int size;
+ Py_ssize_t size;
if (base != b->tp_base)
return 0;
static void
inherit_special(PyTypeObject *type, PyTypeObject *base)
{
- int oldsize, newsize;
+ Py_ssize_t oldsize, newsize;
/* Special flag magic */
if (!type->tp_as_buffer && base->tp_as_buffer) {
static int
add_subclass(PyTypeObject *base, PyTypeObject *type)
{
- int i;
+ Py_ssize_t i;
+ int result;
PyObject *list, *ref, *new;
list = base->tp_subclasses;
if (PyWeakref_GET_OBJECT(ref) == Py_None)
return PyList_SetItem(list, i, new);
}
- i = PyList_Append(list, new);
+ result = PyList_Append(list, new);
Py_DECREF(new);
- return i;
+ return result;
}
static void
return NULL;
}
}
- ival = PyInt_FromLong(i);
+ ival = PyInt_FromSsize_t(i);
if (ival != NULL) {
args = PyTuple_New(1);
if (args != NULL) {
return 1;
}
-static int
+static Py_ssize_t
unicode_buffer_getcharbuf(PyUnicodeObject *self,
Py_ssize_t index,
const void **ptr)