From d220bd51863d687fdc399e61a4c3e0fd33de13c8 Mon Sep 17 00:00:00 2001 From: "neal.norwitz" Date: Wed, 31 May 2006 07:43:27 +0000 Subject: [PATCH] Calculate smallest properly (it was off by one) and use proper ssize_t types for Win64 git-svn-id: http://svn.python.org/projects/python/trunk@46572 6015fed2-1504-0410-9fe1-9d1591cc4771 --- Modules/_struct.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/_struct.c b/Modules/_struct.c index 1491b2e779..6a3c11f4e6 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -309,24 +309,24 @@ static int _range_error(const formatdef *f, int is_unsigned) { if (is_unsigned == 0) { - long smallest = 0, largest = 0; + Py_ssize_t smallest, largest = 0; Py_ssize_t i = f->size * 8; while (--i > 0) { - smallest = (smallest * 2) - 1; largest = (largest * 2) + 1; } + smallest = -largest - 1; PyErr_Format(StructError, - "'%c' format requires %ld <= number <= %ld", + "'%c' format requires %zd <= number <= %zd", f->format, smallest, largest); } else { - unsigned long largest = 0; + size_t largest = 0; Py_ssize_t i = f->size * 8; while (--i >= 0) largest = (largest * 2) + 1; PyErr_Format(StructError, - "'%c' format requires 0 <= number <= %lu", + "'%c' format requires 0 <= number <= %zu", f->format, largest); } -- 2.11.4.GIT