summaryrefslogtreecommitdiff
path: root/ext
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
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')
-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)