summaryrefslogtreecommitdiffstats
path: root/Objects/longobject.c
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-02-15 17:27:41 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-02-15 17:27:41 (GMT)
commit0d4785bc3b64c9429758436c60357e04bdcd1379 (patch)
tree56ad4325f370c27028d81d05242ce053bbf79936 /Objects/longobject.c
parent9d876139e50e82b2c2bc141d81fc97fc1c09a991 (diff)
downloadcpython-0d4785bc3b64c9429758436c60357e04bdcd1379.zip
cpython-0d4785bc3b64c9429758436c60357e04bdcd1379.tar.gz
cpython-0d4785bc3b64c9429758436c60357e04bdcd1379.tar.bz2
Fix more places in Objects/longobject.c where it's silently assumed that
sizeof(digit) < sizeof(int).
Diffstat (limited to 'Objects/longobject.c')
-rw-r--r--Objects/longobject.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/Objects/longobject.c b/Objects/longobject.c
index ead6398..48a3cde 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];
}