提交 30d2c1f5 编写于 作者: R rofl0r

sigandset/sigorset: do not check for NULL pointers.

that way it's consistent with existing sig* functions, and saves
some code size.
上级 4ab26cc3
#define _GNU_SOURCE #define _GNU_SOURCE
#include <signal.h> #include <signal.h>
#include <errno.h>
#define SST_SIZE (_NSIG/8) #define SST_SIZE (_NSIG/8)
int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right) int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right)
{ {
if(!dest || !left || !right) {
errno = EINVAL;
return -1;
}
unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
for(; i < SST_SIZE; i++) d[i] = l[i] & r[i]; for(; i < SST_SIZE; i++) d[i] = l[i] & r[i];
return 0; return 0;
......
#define _GNU_SOURCE #define _GNU_SOURCE
#include <signal.h> #include <signal.h>
#include <errno.h>
#define SST_SIZE (_NSIG/8) #define SST_SIZE (_NSIG/8)
int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right) int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right)
{ {
if(!dest || !left || !right) {
errno = EINVAL;
return -1;
}
unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right;
for(; i < SST_SIZE; i++) d[i] = l[i] | r[i]; for(; i < SST_SIZE; i++) d[i] = l[i] | r[i];
return 0; return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册