For clarity, change _longobject to build directly from PyObject_VAR_HEAD

instead of faking it by hand.  It *is* a var object, and nothing but
hysterical raisins to pretend it's an oddball.
This commit is contained in:
Tim Peters 2002-03-02 04:33:09 +00:00
parent 5329cdb3ce
commit 03b18834c3
1 changed files with 6 additions and 3 deletions

View File

@ -36,11 +36,14 @@ typedef BASE_TWODIGITS_TYPE stwodigits; /* signed variant of twodigits */
digit) is never zero. Also, in all cases, for all valid i, digit) is never zero. Also, in all cases, for all valid i,
0 <= ob_digit[i] <= MASK. 0 <= ob_digit[i] <= MASK.
The allocation function takes care of allocating extra memory The allocation function takes care of allocating extra memory
so that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available. */ so that ob_digit[0] ... ob_digit[abs(ob_size)-1] are actually available.
CAUTION: Generic code manipulating subtypes of PyVarObject has to
aware that longs abuse ob_size's sign bit.
*/
struct _longobject { struct _longobject {
PyObject_HEAD PyObject_VAR_HEAD
int ob_size;
digit ob_digit[1]; digit ob_digit[1];
}; };