diff -r 84cef4f1999a Include/longobject.h --- a/Include/longobject.h Mon Apr 29 16:09:39 2013 -0400 +++ b/Include/longobject.h Wed May 01 01:29:17 2013 +0200 @@ -36,17 +36,15 @@ PyAPI_FUNC(PyObject *) PyLong_GetInfo(vo #define PyLong_AS_LONG(op) PyLong_AsLong(op) /* Issue #1983: pid_t can be longer than a C long on some systems */ +#define PyLong_FromPid PyLong_FromIntMax_t #if !defined(SIZEOF_PID_T) || SIZEOF_PID_T == SIZEOF_INT #define _Py_PARSE_PID "i" -#define PyLong_FromPid PyLong_FromLong #define PyLong_AsPid PyLong_AsLong #elif SIZEOF_PID_T == SIZEOF_LONG #define _Py_PARSE_PID "l" -#define PyLong_FromPid PyLong_FromLong #define PyLong_AsPid PyLong_AsLong #elif defined(SIZEOF_LONG_LONG) && SIZEOF_PID_T == SIZEOF_LONG_LONG #define _Py_PARSE_PID "L" -#define PyLong_FromPid PyLong_FromLongLong #define PyLong_AsPid PyLong_AsLongLong #else #error "sizeof(pid_t) is neither sizeof(int), sizeof(long) or sizeof(long long)" diff -r 84cef4f1999a Modules/_io/_iomodule.h --- a/Modules/_io/_iomodule.h Mon Apr 29 16:09:39 2013 -0400 +++ b/Modules/_io/_iomodule.h Wed May 01 01:29:17 2013 +0200 @@ -77,12 +77,13 @@ extern int _PyIO_trap_eintr(void); long with "%lld" even when both long and long long have the same precision. */ +#define PyLong_FromOff_t PyLong_FromIntMax_t + #if defined(MS_WIN64) || defined(MS_WINDOWS) /* Windows uses long long for offsets */ typedef PY_LONG_LONG Py_off_t; # define PyLong_AsOff_t PyLong_AsLongLong -# define PyLong_FromOff_t PyLong_FromLongLong # define PY_OFF_T_MAX PY_LLONG_MAX # define PY_OFF_T_MIN PY_LLONG_MIN # define PY_OFF_T_COMPAT PY_LONG_LONG /* type compatible with off_t */ @@ -92,23 +93,21 @@ typedef PY_LONG_LONG Py_off_t; /* Other platforms use off_t */ typedef off_t Py_off_t; + #if (SIZEOF_OFF_T == SIZEOF_SIZE_T) # define PyLong_AsOff_t PyLong_AsSsize_t -# define PyLong_FromOff_t PyLong_FromSsize_t # define PY_OFF_T_MAX PY_SSIZE_T_MAX # define PY_OFF_T_MIN PY_SSIZE_T_MIN # define PY_OFF_T_COMPAT Py_ssize_t # define PY_PRIdOFF "zd" #elif (HAVE_LONG_LONG && SIZEOF_OFF_T == SIZEOF_LONG_LONG) # define PyLong_AsOff_t PyLong_AsLongLong -# define PyLong_FromOff_t PyLong_FromLongLong # define PY_OFF_T_MAX PY_LLONG_MAX # define PY_OFF_T_MIN PY_LLONG_MIN # define PY_OFF_T_COMPAT PY_LONG_LONG # define PY_PRIdOFF "lld" #elif (SIZEOF_OFF_T == SIZEOF_LONG) # define PyLong_AsOff_t PyLong_AsLong -# define PyLong_FromOff_t PyLong_FromLong # define PY_OFF_T_MAX LONG_MAX # define PY_OFF_T_MIN LONG_MIN # define PY_OFF_T_COMPAT long diff -r 84cef4f1999a Modules/mmapmodule.c --- a/Modules/mmapmodule.c Mon Apr 29 16:09:39 2013 -0400 +++ b/Modules/mmapmodule.c Wed May 01 01:29:17 2013 +0200 @@ -460,11 +460,7 @@ mmap_size_method(mmap_object *self, PyErr_SetFromErrno(PyExc_OSError); return NULL; } -#ifdef HAVE_LARGEFILE_SUPPORT - return PyLong_FromLongLong(buf.st_size); -#else - return PyLong_FromLong(buf.st_size); -#endif + return PyLong_FromIntMax_t(buf.st_size); } #endif /* UNIX */ } diff -r 84cef4f1999a Modules/posixmodule.c --- a/Modules/posixmodule.c Mon Apr 29 16:09:39 2013 -0400 +++ b/Modules/posixmodule.c Wed May 01 01:29:17 2013 +0200 @@ -2080,19 +2080,11 @@ static PyObject* return NULL; PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long)st->st_mode)); -#ifdef HAVE_LARGEFILE_SUPPORT - PyStructSequence_SET_ITEM(v, 1, - PyLong_FromLongLong((PY_LONG_LONG)st->st_ino)); -#else - PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long)st->st_ino)); -#endif + PyStructSequence_SET_ITEM(v, 1, PyLong_FromIntMax_t(st->st_ino)); #ifdef MS_WINDOWS PyStructSequence_SET_ITEM(v, 2, PyLong_FromUnsignedLong(st->st_dev)); -#elif defined(HAVE_LONG_LONG) - PyStructSequence_SET_ITEM(v, 2, - PyLong_FromLongLong((PY_LONG_LONG)st->st_dev)); -#else - PyStructSequence_SET_ITEM(v, 2, PyLong_FromLong((long)st->st_dev)); +#else + PyStructSequence_SET_ITEM(v, 2, PyLong_FromIntMax_t(st->st_dev)); #endif PyStructSequence_SET_ITEM(v, 3, PyLong_FromLong((long)st->st_nlink)); #if defined(MS_WINDOWS) @@ -2102,12 +2094,7 @@ static PyObject* PyStructSequence_SET_ITEM(v, 4, _PyLong_FromUid(st->st_uid)); PyStructSequence_SET_ITEM(v, 5, _PyLong_FromGid(st->st_gid)); #endif -#ifdef HAVE_LARGEFILE_SUPPORT - PyStructSequence_SET_ITEM(v, 6, - PyLong_FromLongLong((PY_LONG_LONG)st->st_size)); -#else - PyStructSequence_SET_ITEM(v, 6, PyLong_FromLong(st->st_size)); -#endif + PyStructSequence_SET_ITEM(v, 6, PyLong_FromIntMax_t(st->st_size)); #if defined(HAVE_STAT_TV_NSEC) ansec = st->st_atim.tv_nsec; @@ -7325,11 +7312,7 @@ posix_lseek(PyObject *self, PyObject *ar if (res < 0) return posix_error(); -#if !defined(HAVE_LARGEFILE_SUPPORT) - return PyLong_FromLong(res); -#else - return PyLong_FromLongLong(res); -#endif + return PyLong_FromIntMax_t(res); } @@ -8472,18 +8455,12 @@ static PyObject* #else PyStructSequence_SET_ITEM(v, 0, PyLong_FromLong((long) st.f_bsize)); PyStructSequence_SET_ITEM(v, 1, PyLong_FromLong((long) st.f_frsize)); - PyStructSequence_SET_ITEM(v, 2, - PyLong_FromLongLong((PY_LONG_LONG) st.f_blocks)); - PyStructSequence_SET_ITEM(v, 3, - PyLong_FromLongLong((PY_LONG_LONG) st.f_bfree)); - PyStructSequence_SET_ITEM(v, 4, - PyLong_FromLongLong((PY_LONG_LONG) st.f_bavail)); - PyStructSequence_SET_ITEM(v, 5, - PyLong_FromLongLong((PY_LONG_LONG) st.f_files)); - PyStructSequence_SET_ITEM(v, 6, - PyLong_FromLongLong((PY_LONG_LONG) st.f_ffree)); - PyStructSequence_SET_ITEM(v, 7, - PyLong_FromLongLong((PY_LONG_LONG) st.f_favail)); + PyStructSequence_SET_ITEM(v, 2, PyLong_FromIntMax_t(st.f_blocks)); + PyStructSequence_SET_ITEM(v, 3, PyLong_FromIntMax_t(st.f_bfree)); + PyStructSequence_SET_ITEM(v, 4, PyLong_FromIntMax_t(st.f_bavail)); + PyStructSequence_SET_ITEM(v, 5, PyLong_FromIntMax_t(st.f_files)); + PyStructSequence_SET_ITEM(v, 6, PyLong_FromIntMax_t(st.f_ffree)); + PyStructSequence_SET_ITEM(v, 7, PyLong_FromIntMax_t(st.f_favail)); PyStructSequence_SET_ITEM(v, 8, PyLong_FromLong((long) st.f_flag)); PyStructSequence_SET_ITEM(v, 9, PyLong_FromLong((long) st.f_namemax)); #endif diff -r 84cef4f1999a Modules/resource.c --- a/Modules/resource.c Mon Apr 29 16:09:39 2013 -0400 +++ b/Modules/resource.c Wed May 01 01:29:17 2013 +0200 @@ -341,7 +341,7 @@ PyInit_resource(void) #if defined(HAVE_LONG_LONG) if (sizeof(RLIM_INFINITY)> sizeof(long)) { - v = PyLong_FromLongLong((PY_LONG_LONG) RLIM_INFINITY); + v = PyLong_FromIntMax_t(RLIM_INFINITY); } else #endif { diff -r 84cef4f1999a Python/pytime.c --- a/Python/pytime.c Mon Apr 29 16:09:39 2013 -0400 +++ b/Python/pytime.c Wed May 01 01:29:17 2013 +0200 @@ -142,12 +142,7 @@ time_t PyObject * _PyLong_FromTime_t(time_t t) { -#if defined(HAVE_LONG_LONG) && SIZEOF_TIME_T == SIZEOF_LONG_LONG - return PyLong_FromLongLong((PY_LONG_LONG)t); -#else - assert(sizeof(time_t) <= sizeof(long)); - return PyLong_FromLong((long)t); -#endif + return PyLong_FromIntMax_t(t); } static int

AltStyle によって変換されたページ (->オリジナル) /