tree edfdce5921b4009afc0f0d352f324a00da859d69
parent 44e8ac810d7d50381429a15cdc6e48816beafd2b
author Mark Adler <madler@alumni.caltech.edu> 1496508579 -0700
committer Mark Adler <madler@alumni.caltech.edu> 1496508813 -0700

Avoid the use of ptrdiff_t.

This isn't the right type anyway to assure that it contains a
pointer. That type would be intptr_t or uintptr_t. However the C99
standard says that those types are optional, so their use would not
be portable. This commit simply uses size_t or whatever configure
decided to use for size_t. That would be the same length as
ptrdiff_t, and so will work just as well. The code checks to see if
the length of the type used is the same as the length of a void
pointer, so there is already protection against the use of the
wrong type. The use of size_t (or ptrdiff_t) will almost always
work, as all modern architectures have an array size that is the
same as the pointer size. Only old segmented architectures would
have to fall back to the slower CRC-32 calculation, where the
amount of memory that can be accessed is larger than the maximum
array size.
