bool memeqzero(const void *data, size_t length)
{
const unsigned char *p = data;
+ static unsigned long zeroes[16];
- while (length) {
- if (*p)
+ while (length > sizeof(zeroes)) {
+ if (memcmp(zeroes, p, sizeof(zeroes)))
return false;
- p++;
- length--;
+ p += sizeof(zeroes);
+ length -= sizeof(zeroes);
}
- return true;
+ return memcmp(zeroes, p, length) == 0;
}