_PyLong_Sign(): remove an assert that needed a variable ndigits that

wasn't used outside the assert (and hence caused a compiler warning
about an unused variable in NDEBUG mode).  The assert wasn't very
useful any more.

_PyLong_NumBits(): moved the calculation of ndigits after asserting
that v != NULL.
This commit is contained in:
Guido van Rossum 2003-02-03 15:28:19 +00:00
parent 7aa56c9a7f
commit 004a65c9b1
1 changed files with 2 additions and 3 deletions

View File

@ -264,11 +264,9 @@ int
_PyLong_Sign(PyObject *vv) _PyLong_Sign(PyObject *vv)
{ {
PyLongObject *v = (PyLongObject *)vv; PyLongObject *v = (PyLongObject *)vv;
const int ndigits = ABS(v->ob_size);
assert(v != NULL); assert(v != NULL);
assert(PyLong_Check(v)); assert(PyLong_Check(v));
assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
return v->ob_size == 0 ? 0 : (v->ob_size < 0 ? -1 : 1); return v->ob_size == 0 ? 0 : (v->ob_size < 0 ? -1 : 1);
} }
@ -278,10 +276,11 @@ _PyLong_NumBits(PyObject *vv)
{ {
PyLongObject *v = (PyLongObject *)vv; PyLongObject *v = (PyLongObject *)vv;
size_t result = 0; size_t result = 0;
int ndigits = ABS(v->ob_size); int ndigits;
assert(v != NULL); assert(v != NULL);
assert(PyLong_Check(v)); assert(PyLong_Check(v));
ndigits = ABS(v->ob_size);
assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0); assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
if (ndigits > 0) { if (ndigits > 0) {
digit msd = v->ob_digit[ndigits - 1]; digit msd = v->ob_digit[ndigits - 1];