[Python-Dev] tests failing in 2.2.2
Tim Peters
tim.one@comcast.net
Tue, 08 Oct 2002 16:33:30 -0400
[Tim]
>> If we changed the test to use maxint // 2 instead, it would
>> (just barely) trigger the
>>
>> _new_size <= ((~(size_t)0) / sizeof(type))
>>
>> test in NRESIZE instead, and keep the platform realloc() out of it.
>>
>> Good enough?
[Guido]
> I'd say so, except I fear that it might cause different problems
> (not that I know of any). I tried it on Linux and on Win98
> and it works fine. I presume you've tested it on Win2K.
Not really, but I watched what it *would* have done <wink> in the
debugger.
> But wasn't it specifically designed to catch a condition that was
> only true when the size was (approximately) maxint/4?
If that was the intent, then Martin was right that it's not catching
what it intended to catch: as written, it goes to the platform
realloc. The only place it *could* get caught before going to the
platform realloc is in the snippet of code from NRESIZE I included
above. The suggested change would (just barely) trigger that code
instead, and we wouldn't invoked the platform realloc() at all then.
There are no other interesting conditions I know of, or can find in the
code.