|
|
@@ -92,12 +92,13 @@ void memswap(void *a, void *b, size_t n)
|
|
|
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;
|
|
|
}
|