diff -r 116bd550e309 Objects/codeobject.c --- a/Objects/codeobject.c Tue Nov 19 23:56:34 2013 +0100 +++ b/Objects/codeobject.c Wed Nov 20 00:07:34 2013 +0100 @@ -108,7 +108,7 @@ PyCode_New(int argcount, int kwonlyargco for (j = 0; j < total_args; j++) { PyObject *arg = PyTuple_GET_ITEM(varnames, j); if (!PyUnicode_Compare(cell, arg)) { - cell2arg[i] = j; + cell2arg[i] = Py_SAFE_DOWNCAST(j, Py_ssize_t, unsigned char); used_cell2arg = 1; break; } diff -r 116bd550e309 Objects/funcobject.c --- a/Objects/funcobject.c Tue Nov 19 23:56:34 2013 +0100 +++ b/Objects/funcobject.c Wed Nov 20 00:07:34 2013 +0100 @@ -597,7 +597,8 @@ function_call(PyObject *func, PyObject * PyObject *argdefs; PyObject *kwtuple = NULL; PyObject **d, **k; - Py_ssize_t nk, nd; + Py_ssize_t na, nk, nd; + int na_int, nk_int, nd_int; argdefs = PyFunction_GET_DEFAULTS(func); if (argdefs != NULL && PyTuple_Check(argdefs)) { @@ -608,6 +609,7 @@ function_call(PyObject *func, PyObject * d = NULL; nd = 0; } + nd_int = Py_SAFE_DOWNCAST(nd, Py_ssize_t, int); if (kw != NULL && PyDict_Check(kw)) { Py_ssize_t pos, i; @@ -628,12 +630,17 @@ function_call(PyObject *func, PyObject * k = NULL; nk = 0; } + nk_int = Py_SAFE_DOWNCAST(nk, Py_ssize_t, int); + + na = PyTuple_GET_SIZE(arg); + na_int = Py_SAFE_DOWNCAST(na, Py_ssize_t, int); result = PyEval_EvalCodeEx( PyFunction_GET_CODE(func), PyFunction_GET_GLOBALS(func), (PyObject *)NULL, - &PyTuple_GET_ITEM(arg, 0), PyTuple_GET_SIZE(arg), - k, nk, d, nd, + &PyTuple_GET_ITEM(arg, 0), na_int, + k, nk_int, + d, nd_int, PyFunction_GET_KW_DEFAULTS(func), PyFunction_GET_CLOSURE(func)); diff -r 116bd550e309 Python/ceval.c --- a/Python/ceval.c Tue Nov 19 23:56:34 2013 +0100 +++ b/Python/ceval.c Wed Nov 20 00:07:34 2013 +0100 @@ -114,7 +114,7 @@ static PyObject * do_call(PyObject *, Py static PyObject * ext_do_call(PyObject *, PyObject ***, int, int, int); static PyObject * update_keyword_args(PyObject *, int, PyObject ***, PyObject *); -static PyObject * update_star_args(int, int, PyObject *, PyObject ***); +static PyObject * update_star_args(int, Py_ssize_t, PyObject *, PyObject ***); static PyObject * load_args(PyObject ***, int); #define CALL_FLAG_VAR 1 #define CALL_FLAG_KW 2 @@ -4287,7 +4287,8 @@ fast_function(PyObject *func, PyObject * PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *kwdefs = PyFunction_GET_KW_DEFAULTS(func); PyObject **d = NULL; - int nd = 0; + Py_ssize_t nd = 0; + int nd_int; PCALL(PCALL_FUNCTION); PCALL(PCALL_FAST_FUNCTION); @@ -4328,9 +4329,14 @@ fast_function(PyObject *func, PyObject * d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } + nd_int = Py_SAFE_DOWNCAST(nd, Py_ssize_t, int); + return PyEval_EvalCodeEx((PyObject*)co, globals, - (PyObject *)NULL, (*pp_stack)-n, na, - (*pp_stack)-2*nk, nk, d, nd, kwdefs, + (PyObject *)NULL, + (*pp_stack)-n, na, + (*pp_stack)-2*nk, nk, + d, nd_int, + kwdefs, PyFunction_GET_CLOSURE(func)); } @@ -4375,7 +4381,7 @@ update_keyword_args(PyObject *orig_kwdic } static PyObject * -update_star_args(int nstack, int nstar, PyObject *stararg, +update_star_args(int nstack, Py_ssize_t nstar, PyObject *stararg, PyObject ***pp_stack) { PyObject *callargs, *w; @@ -4385,7 +4391,7 @@ update_star_args(int nstack, int nstar, return NULL; } if (nstar) { - int i; + Py_ssize_t i; for (i = 0; i < nstar; i++) { PyObject *a = PyTuple_GET_ITEM(stararg, i); Py_INCREF(a); @@ -4460,7 +4466,7 @@ call_fail: static PyObject * ext_do_call(PyObject *func, PyObject ***pp_stack, int flags, int na, int nk) { - int nstar = 0; + Py_ssize_t nstar = 0; PyObject *callargs = NULL; PyObject *stararg = NULL; PyObject *kwdict = NULL;