summaryrefslogtreecommitdiff
path: root/ext/POSIX/POSIX.xs
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2011-09-08 12:05:06 +0200
committerNicholas Clark <nick@ccl4.org>2011-09-13 11:28:07 +0200
commitdf6c2df286c51c732d4257e80455c256e49cff3a (patch)
tree0cdfaf5c7c7b72152ce21fa4929f5700fdb90a13 /ext/POSIX/POSIX.xs
parent61fb63a65302574d277a1fad9234dfa69d968d28 (diff)
downloadperl-df6c2df286c51c732d4257e80455c256e49cff3a.tar.gz
Merge the implementations of 2 pairs of POSIX::SigSet methods.
Using ALIAS to merge addset() with delset() and emptyset() with fillset() reduces the shared object size, by removing duplicate marshaling code for arguments and return values. On this platform the saving is over .5K
Diffstat (limited to 'ext/POSIX/POSIX.xs')
-rw-r--r--ext/POSIX/POSIX.xs25
1 files changed, 14 insertions, 11 deletions
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index c288bfc7ba..1b7333e6a1 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -694,22 +694,25 @@ new(packname = "POSIX::SigSet", ...)
}
SysRet
-sigaddset(sigset, sig)
+addset(sigset, sig)
POSIX::SigSet sigset
int sig
+ ALIAS:
+ delset = 1
+ CODE:
+ RETVAL = ix ? sigdelset(sigset, sig) : sigaddset(sigset, sig);
+ OUTPUT:
+ RETVAL
SysRet
-sigdelset(sigset, sig)
- POSIX::SigSet sigset
- int sig
-
-SysRet
-sigemptyset(sigset)
- POSIX::SigSet sigset
-
-SysRet
-sigfillset(sigset)
+emptyset(sigset)
POSIX::SigSet sigset
+ ALIAS:
+ fillset = 1
+ CODE:
+ RETVAL = ix ? sigfillset(sigset) : sigemptyset(sigset);
+ OUTPUT:
+ RETVAL
int
sigismember(sigset, sig)