optimize sigisemptyset

the static const zero set ended up getting put in bss instead of
rodata, wasting writable memory, and the call to memcmp was
size-inefficient. generally for nonstandard extension functions we try
to avoid poking at any internals directly, but the way the zero set
was setup was arguably already doing so.
This commit is contained in:
Rich Felker 2018-05-01 16:56:02 -04:00
parent 375840c7d8
commit 941bd884cc
1 changed files with 3 additions and 2 deletions

View File

@ -4,6 +4,7 @@
int sigisemptyset(const sigset_t *set)
{
static const unsigned long zeroset[_NSIG/8/sizeof(long)];
return !memcmp(set, &zeroset, _NSIG/8);
for (size_t i=0; i<_NSIG/8/sizeof *set->__bits; i++)
if (set->__bits[i]) return 0;
return 1;
}