_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.
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 2ccf414..c2d6ea7 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -264,11 +264,9 @@
_PyLong_Sign(PyObject *vv)
{
PyLongObject *v = (PyLongObject *)vv;
- const int ndigits = ABS(v->ob_size);
assert(v != NULL);
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);
}
@@ -278,10 +276,11 @@
{
PyLongObject *v = (PyLongObject *)vv;
size_t result = 0;
- int ndigits = ABS(v->ob_size);
+ int ndigits;
assert(v != NULL);
assert(PyLong_Check(v));
+ ndigits = ABS(v->ob_size);
assert(ndigits == 0 || v->ob_digit[ndigits - 1] != 0);
if (ndigits > 0) {
digit msd = v->ob_digit[ndigits - 1];