Martin v. Löwis added the comment:

Antoine: if you look at

http://svn.python.org/view/python/branches/ssize_t/Modules/cStringIO.c?revision=41731&view=markup&pathrev=42382

you'll notice that IOobject and Iobject have pos and stringsize as int, whereas 
Oobject has it as Py_ssize_t. This must have been a bug; I think the structures 
were meant as compatible. If they all should have been defined in terms of int, 
the assert would make sense.

That said, what actually got merged included all the fields as Py_ssize_t, in 
which case the assert makes no sense. OTOH, it prevents the cast below (of 
(int)l) to produce bogus results, so it actually helped to detect the bugs :-)

What is now needed (from people running into the issue) is a patch that 
resolves all aspects of >2GB handling in these modules. I believe the issue is 
resolved in Python 3 (by both StringIO and BytesIO properly using Py_ssize_t 
throughout there), so unless somebody interested in this problem actually 
contributes a patch, the issue is unlikely to advance.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue7358>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to