X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fmemchr2.c;h=ad78195ee393ac4471f44196933a605394d09980;hb=38db1b35bf51a7a738f27d2660a9fdd3b46447be;hp=1eb8f9bd7a4b21ae96bee3825683c57e12dc5c43;hpb=1f90f54e377196656bb9adc0655f0a830eac7d8a;p=gnulib.git diff --git a/lib/memchr2.c b/lib/memchr2.c index 1eb8f9bd7..ad78195ee 100644 --- a/lib/memchr2.c +++ b/lib/memchr2.c @@ -29,8 +29,6 @@ along with this program. If not, see . */ #include #include -#include "intprops.h" - /* Return the first address of either C1 or C2 (treated as unsigned char) that occurs within N bytes of the memory region S. If neither byte appears, return NULL. */ @@ -42,7 +40,7 @@ memchr2 (void const *s, int c1_in, int c2_in, size_t n) performance. On 64-bit hardware, unsigned long is generally 64 bits already. Change this typedef to experiment with performance. */ - typedef unsigned long longword; + typedef unsigned long int longword; const unsigned char *char_ptr; const longword *longword_ptr; @@ -80,14 +78,14 @@ memchr2 (void const *s, int c1_in, int c2_in, size_t n) repeated_c2 = c2 | (c2 << 8); repeated_c1 |= repeated_c1 << 16; repeated_c2 |= repeated_c2 << 16; - if (0xffffffffU < TYPE_MAXIMUM (longword)) + if (0xffffffffU < (longword) -1) { repeated_one |= repeated_one << 31 << 1; repeated_c1 |= repeated_c1 << 31 << 1; repeated_c2 |= repeated_c2 << 31 << 1; if (8 < sizeof (longword)) { - int i; + size_t i; for (i = 64; i < sizeof (longword) * 8; i *= 2) {