Skip to content

Commit

Permalink
Issue python#9566: use Py_ssize_t instead of int
Browse files Browse the repository at this point in the history
  • Loading branch information
Victor Stinner committed Jan 4, 2011
1 parent 6ab8e82 commit 0fcab4a
Show file tree
Hide file tree
Showing 14 changed files with 32 additions and 33 deletions.
6 changes: 3 additions & 3 deletions Modules/_ctypes/_ctypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -3925,14 +3925,14 @@ PyTypeObject PyCFuncPtr_Type = {
Returns -1 on error, or the index of next argument on success.
*/
static int
static Py_ssize_t
_init_pos_args(PyObject *self, PyTypeObject *type,
PyObject *args, PyObject *kwds,
int index)
Py_ssize_t index)
{
StgDictObject *dict;
PyObject *fields;
int i;
Py_ssize_t i;

if (PyType_stgdict((PyObject *)type->tp_base)) {
index = _init_pos_args(self, type->tp_base,
Expand Down
2 changes: 1 addition & 1 deletion Modules/_testcapimodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -2188,7 +2188,7 @@ argparsing(PyObject *o, PyObject *args)
/* argument converter not called? */
return NULL;
/* Should be 1 */
res = PyLong_FromLong(Py_REFCNT(str2));
res = PyLong_FromSsize_t(Py_REFCNT(str2));
Py_DECREF(str2);
PyErr_Clear();
return res;
Expand Down
2 changes: 1 addition & 1 deletion Modules/audioop.c
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ audioop_check_size(int size)
}

static int
audioop_check_parameters(int len, int size)
audioop_check_parameters(Py_ssize_t len, int size)
{
if (!audioop_check_size(size))
return 0;
Expand Down
4 changes: 2 additions & 2 deletions Modules/md5module.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,9 @@ void md5_init(struct md5_state *md5)
@param inlen The length of the data (octets)
*/
void md5_process(struct md5_state *md5,
const unsigned char *in, unsigned long inlen)
const unsigned char *in, Py_ssize_t inlen)
{
unsigned long n;
Py_ssize_t n;

assert(md5 != NULL);
assert(in != NULL);
Expand Down
10 changes: 5 additions & 5 deletions Modules/pyexpat.c
Original file line number Diff line number Diff line change
Expand Up @@ -800,7 +800,7 @@ readinst(char *buf, int buf_size, PyObject *meth)
PyObject *arg = NULL;
PyObject *bytes = NULL;
PyObject *str = NULL;
int len = -1;
Py_ssize_t len = -1;
char *ptr;

if ((bytes = PyLong_FromLong(buf_size)) == NULL)
Expand Down Expand Up @@ -831,15 +831,15 @@ readinst(char *buf, int buf_size, PyObject *meth)
if (len > buf_size) {
PyErr_Format(PyExc_ValueError,
"read() returned too much data: "
"%i bytes requested, %i returned",
"%i bytes requested, %zi returned",
buf_size, len);
goto finally;
}
memcpy(buf, ptr, len);
finally:
Py_XDECREF(arg);
Py_XDECREF(str);
return len;
return (int)len;
}

PyDoc_STRVAR(xmlparse_ParseFile__doc__,
Expand Down Expand Up @@ -1807,7 +1807,7 @@ MODULE_INITFUNC(void)
Py_XDECREF(rev_codes_dict);
return NULL;
}

#define MYCONST(name) \
if (PyModule_AddStringConstant(errors_module, #name, \
(char *)XML_ErrorString(name)) < 0) \
Expand Down Expand Up @@ -1873,7 +1873,7 @@ MODULE_INITFUNC(void)
return NULL;
if (PyModule_AddObject(errors_module, "messages", rev_codes_dict) < 0)
return NULL;

#undef MYCONST

#define MYCONST(c) PyModule_AddIntConstant(m, #c, c)
Expand Down
3 changes: 1 addition & 2 deletions Modules/selectmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,9 @@ reap_obj(pylist fd2obj[FD_SETSIZE + 1])
static int
seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE + 1])
{
int i;
int max = -1;
int index = 0;
int len = -1;
Py_ssize_t i, len = -1;
PyObject* fast_seq = NULL;
PyObject* o = NULL;

Expand Down
4 changes: 2 additions & 2 deletions Modules/sha1module.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,9 +203,9 @@ void sha1_init(struct sha1_state *sha1)
@param inlen The length of the data (octets)
*/
void sha1_process(struct sha1_state *sha1,
const unsigned char *in, unsigned long inlen)
const unsigned char *in, Py_ssize_t inlen)
{
unsigned long n;
Py_ssize_t n;

assert(sha1 != NULL);
assert(in != NULL);
Expand Down
4 changes: 2 additions & 2 deletions Modules/sha256module.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,9 +265,9 @@ sha224_init(SHAobject *sha_info)
/* update the SHA digest */

static void
sha_update(SHAobject *sha_info, SHA_BYTE *buffer, int count)
sha_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count)
{
int i;
Py_ssize_t i;
SHA_INT32 clo;

clo = sha_info->count_lo + ((SHA_INT32) count << 3);
Expand Down
4 changes: 2 additions & 2 deletions Modules/sha512module.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,9 +291,9 @@ sha384_init(SHAobject *sha_info)
/* update the SHA digest */

static void
sha512_update(SHAobject *sha_info, SHA_BYTE *buffer, int count)
sha512_update(SHAobject *sha_info, SHA_BYTE *buffer, Py_ssize_t count)
{
int i;
Py_ssize_t i;
SHA_INT32 clo;

clo = sha_info->count_lo + ((SHA_INT32) count << 3);
Expand Down
10 changes: 4 additions & 6 deletions Modules/unicodedata.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,8 @@ unicodedata_decomposition(PyObject *self, PyObject *args)
{
PyUnicodeObject *v;
char decomp[256];
int code, index, count, i;
int code, index, count;
size_t i;
unsigned int prefix_index;
Py_UCS4 c;

Expand Down Expand Up @@ -450,15 +451,12 @@ unicodedata_decomposition(PyObject *self, PyObject *args)
while (count-- > 0) {
if (i)
decomp[i++] = ' ';
assert((size_t)i < sizeof(decomp));
assert(i < sizeof(decomp));
PyOS_snprintf(decomp + i, sizeof(decomp) - i, "%04X",
decomp_data[++index]);
i += strlen(decomp + i);
}

decomp[i] = '\0';

return PyUnicode_FromString(decomp);
return PyUnicode_FromStringAndSize(decomp, i);
}

static void
Expand Down
5 changes: 3 additions & 2 deletions Objects/codeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ PyTypeObject PyCode_Type = {
int
PyCode_Addr2Line(PyCodeObject *co, int addrq)
{
int size = PyBytes_Size(co->co_lnotab) / 2;
Py_ssize_t size = PyBytes_Size(co->co_lnotab) / 2;
unsigned char *p = (unsigned char*)PyBytes_AsString(co->co_lnotab);
int line = co->co_firstlineno;
int addr = 0;
Expand All @@ -510,7 +510,8 @@ PyCode_Addr2Line(PyCodeObject *co, int addrq)
int
_PyCode_CheckLineNumber(PyCodeObject* co, int lasti, PyAddrPair *bounds)
{
int size, addr, line;
Py_ssize_t size;
int addr, line;
unsigned char* p;

p = (unsigned char*)PyBytes_AS_STRING(co->co_lnotab);
Expand Down
2 changes: 1 addition & 1 deletion Objects/listobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -1381,7 +1381,7 @@ typedef struct s_MergeState {

/* Conceptually a MergeState's constructor. */
static void
merge_init(MergeState *ms, int list_size, int has_keyfunc)
merge_init(MergeState *ms, Py_ssize_t list_size, int has_keyfunc)
{
assert(ms != NULL);
if (has_keyfunc) {
Expand Down
6 changes: 3 additions & 3 deletions Objects/typeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -2325,7 +2325,7 @@ PyObject* PyType_FromSpec(PyType_Spec *spec)
res->ht_type.tp_basicsize = spec->basicsize;
res->ht_type.tp_itemsize = spec->itemsize;
res->ht_type.tp_flags = spec->flags | Py_TPFLAGS_HEAPTYPE;

for (slot = spec->slots; slot->slot; slot++) {
if (slot->slot >= sizeof(slotoffsets)/sizeof(slotoffsets[0])) {
PyErr_SetString(PyExc_RuntimeError, "invalid slot offset");
Expand All @@ -2335,7 +2335,7 @@ PyObject* PyType_FromSpec(PyType_Spec *spec)
}

return (PyObject*)res;

fail:
Py_DECREF(res);
return NULL;
Expand Down Expand Up @@ -6202,7 +6202,7 @@ super_init(PyObject *self, PyObject *args, PyObject *kwds)
and first local variable on the stack. */
PyFrameObject *f = PyThreadState_GET()->frame;
PyCodeObject *co = f->f_code;
int i, n;
Py_ssize_t i, n;
if (co == NULL) {
PyErr_SetString(PyExc_SystemError,
"super(): no code object");
Expand Down
3 changes: 2 additions & 1 deletion Python/pythonrun.c
Original file line number Diff line number Diff line change
Expand Up @@ -1202,7 +1202,8 @@ PyRun_SimpleFileExFlags(FILE *fp, const char *filename, int closeit,
{
PyObject *m, *d, *v;
const char *ext;
int set_file_name = 0, ret, len;
int set_file_name = 0, ret;
size_t len;

m = PyImport_AddModule("__main__");
if (m == NULL)
Expand Down

0 comments on commit 0fcab4a

Please sign in to comment.