[Python-Dev] test_builtin failing? or just 64-bit platforms
Tim Peters
tim.one@home.com
Fri, 30 Nov 2001 23:31:51 -0500
[Barry]
> ...
> Heh, I was going to suggest that this might be a good place to
> substitute a call to PyString_FromFormat*() but then I read this
> little nugget:
>
> case 'd': case 'i': case 'x':
> (void) va_arg(count, int);
> /* 20 bytes should be enough to
> hold a 64-bit
> integer */
> n += 20;
> break;
This use of 20 is fine (I checked all occurrences of "20" in the codebase,
BTW); int_repr's use of 20 was wrong because it failed to allow for the
trailing \0 byte too; the loop in PyString_FromFormatV doesn't have to worry
about that (PyString_FromStringAndSize() later adds 1 of its own for the
trailing \0 -- of course it doesn't actually add anything, but it adds 1 "in
effect" <wink -- jeez, C string handling is obscure!>).