From 0d4785bc3b64c9429758436c60357e04bdcd1379 Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Sun, 15 Feb 2009 17:27:41 +0000 Subject: [PATCH] Fix more places in Objects/longobject.c where it's silently assumed that sizeof(digit) < sizeof(int). --- Objects/longobject.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Objects/longobject.c b/Objects/longobject.c index ead6398db1..48a3cde7e6 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -47,7 +47,7 @@ get_small_int(sdigit ival) } #define CHECK_SMALL_INT(ival) \ do if (-NSMALLNEGINTS <= ival && ival < NSMALLPOSINTS) { \ - return get_small_int((int)ival); \ + return get_small_int((sdigit)ival); \ } while(0) static PyLongObject * @@ -365,7 +365,7 @@ PyLong_AsLongAndOverflow(PyObject *vv, int *overflow) switch (i) { case -1: - res = -v->ob_digit[0]; + res = -(sdigit)v->ob_digit[0]; break; case 0: res = 0; @@ -440,7 +440,7 @@ PyLong_AsSsize_t(PyObject *vv) { v = (PyLongObject *)vv; i = Py_SIZE(v); switch (i) { - case -1: return -v->ob_digit[0]; + case -1: return -(sdigit)v->ob_digit[0]; case 0: return 0; case 1: return v->ob_digit[0]; } @@ -1235,7 +1235,7 @@ PyLong_AsLongLong(PyObject *vv) v = (PyLongObject*)vv; switch(Py_SIZE(v)) { - case -1: return -v->ob_digit[0]; + case -1: return -(sdigit)v->ob_digit[0]; case 0: return 0; case 1: return v->ob_digit[0]; } @@ -2279,7 +2279,7 @@ long_hash(PyLongObject *v) of mapping keys will turn out weird */ i = Py_SIZE(v); switch(i) { - case -1: return v->ob_digit[0]==1 ? -2 : -v->ob_digit[0]; + case -1: return v->ob_digit[0]==1 ? -2 : -(sdigit)v->ob_digit[0]; case 0: return 0; case 1: return v->ob_digit[0]; } -- 2.40.0