mirror of
https://github.com/python/cpython.git
synced 2025-07-19 09:15:34 +00:00
require a long long data type (closes #27961)
This commit is contained in:
parent
b3b0767861
commit
ed4aa83ff7
32 changed files with 156 additions and 442 deletions
|
@ -769,7 +769,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
|
|||
break;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LONG_LONG
|
||||
case 'L': {/* PY_LONG_LONG */
|
||||
PY_LONG_LONG *p = va_arg( *p_va, PY_LONG_LONG * );
|
||||
PY_LONG_LONG ival;
|
||||
|
@ -793,7 +792,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
|
|||
*p = ival;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
case 'f': {/* float */
|
||||
float *p = va_arg(*p_va, float *);
|
||||
|
@ -2088,10 +2086,8 @@ skipitem(const char **p_format, va_list *p_va, int flags)
|
|||
case 'I': /* int sized bitfield */
|
||||
case 'l': /* long int */
|
||||
case 'k': /* long int sized bitfield */
|
||||
#ifdef HAVE_LONG_LONG
|
||||
case 'L': /* PY_LONG_LONG */
|
||||
case 'K': /* PY_LONG_LONG sized bitfield */
|
||||
#endif
|
||||
case 'n': /* Py_ssize_t */
|
||||
case 'f': /* float */
|
||||
case 'd': /* double */
|
||||
|
|
|
@ -260,13 +260,12 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
|
|||
return PyLong_FromUnsignedLong(n);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LONG_LONG
|
||||
case 'L':
|
||||
return PyLong_FromLongLong((PY_LONG_LONG)va_arg(*p_va, PY_LONG_LONG));
|
||||
|
||||
case 'K':
|
||||
return PyLong_FromUnsignedLongLong((PY_LONG_LONG)va_arg(*p_va, unsigned PY_LONG_LONG));
|
||||
#endif
|
||||
|
||||
case 'u':
|
||||
{
|
||||
PyObject *v;
|
||||
|
|
|
@ -38,7 +38,7 @@ error_time_t_overflow(void)
|
|||
time_t
|
||||
_PyLong_AsTime_t(PyObject *obj)
|
||||
{
|
||||
#if defined(HAVE_LONG_LONG) && SIZEOF_TIME_T == SIZEOF_LONG_LONG
|
||||
#if SIZEOF_TIME_T == SIZEOF_LONG_LONG
|
||||
PY_LONG_LONG val;
|
||||
val = PyLong_AsLongLong(obj);
|
||||
#else
|
||||
|
@ -57,7 +57,7 @@ _PyLong_AsTime_t(PyObject *obj)
|
|||
PyObject *
|
||||
_PyLong_FromTime_t(time_t t)
|
||||
{
|
||||
#if defined(HAVE_LONG_LONG) && SIZEOF_TIME_T == SIZEOF_LONG_LONG
|
||||
#if SIZEOF_TIME_T == SIZEOF_LONG_LONG
|
||||
return PyLong_FromLongLong((PY_LONG_LONG)t);
|
||||
#else
|
||||
Py_BUILD_ASSERT(sizeof(time_t) <= sizeof(long));
|
||||
|
@ -304,17 +304,10 @@ _PyTime_FromObject(_PyTime_t *t, PyObject *obj, _PyTime_round_t round,
|
|||
return _PyTime_FromFloatObject(t, d, round, unit_to_ns);
|
||||
}
|
||||
else {
|
||||
#ifdef HAVE_LONG_LONG
|
||||
PY_LONG_LONG sec;
|
||||
Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t));
|
||||
|
||||
sec = PyLong_AsLongLong(obj);
|
||||
#else
|
||||
long sec;
|
||||
Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) <= sizeof(_PyTime_t));
|
||||
|
||||
sec = PyLong_AsLong(obj);
|
||||
#endif
|
||||
if (sec == -1 && PyErr_Occurred()) {
|
||||
if (PyErr_ExceptionMatches(PyExc_OverflowError))
|
||||
_PyTime_overflow();
|
||||
|
@ -365,13 +358,8 @@ _PyTime_AsSecondsDouble(_PyTime_t t)
|
|||
PyObject *
|
||||
_PyTime_AsNanosecondsObject(_PyTime_t t)
|
||||
{
|
||||
#ifdef HAVE_LONG_LONG
|
||||
Py_BUILD_ASSERT(sizeof(PY_LONG_LONG) >= sizeof(_PyTime_t));
|
||||
return PyLong_FromLongLong((PY_LONG_LONG)t);
|
||||
#else
|
||||
Py_BUILD_ASSERT(sizeof(long) >= sizeof(_PyTime_t));
|
||||
return PyLong_FromLong((long)t);
|
||||
#endif
|
||||
}
|
||||
|
||||
static _PyTime_t
|
||||
|
|
|
@ -74,14 +74,12 @@ PyMember_GetOne(const char *addr, PyMemberDef *l)
|
|||
PyErr_SetString(PyExc_AttributeError, l->name);
|
||||
Py_XINCREF(v);
|
||||
break;
|
||||
#ifdef HAVE_LONG_LONG
|
||||
case T_LONGLONG:
|
||||
v = PyLong_FromLongLong(*(PY_LONG_LONG *)addr);
|
||||
break;
|
||||
case T_ULONGLONG:
|
||||
v = PyLong_FromUnsignedLongLong(*(unsigned PY_LONG_LONG *)addr);
|
||||
break;
|
||||
#endif /* HAVE_LONG_LONG */
|
||||
case T_NONE:
|
||||
v = Py_None;
|
||||
Py_INCREF(v);
|
||||
|
@ -266,7 +264,6 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
|
|||
case T_STRING_INPLACE:
|
||||
PyErr_SetString(PyExc_TypeError, "readonly attribute");
|
||||
return -1;
|
||||
#ifdef HAVE_LONG_LONG
|
||||
case T_LONGLONG:{
|
||||
PY_LONG_LONG value;
|
||||
*(PY_LONG_LONG*)addr = value = PyLong_AsLongLong(v);
|
||||
|
@ -286,7 +283,6 @@ PyMember_SetOne(char *addr, PyMemberDef *l, PyObject *v)
|
|||
return -1;
|
||||
break;
|
||||
}
|
||||
#endif /* HAVE_LONG_LONG */
|
||||
default:
|
||||
PyErr_Format(PyExc_SystemError,
|
||||
"bad memberdescr type for %s", l->name);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue