Change 33897 by [EMAIL PROTECTED] on 2008/05/21 10:31:32
Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG
and WTERMSIG wrappers with one wrapper using the XS "ALIAS" feature.
This gets the shared object size back below the size before the removal
of int_macro_int. It looks like there are other space savings to be
made this way.
Affected files ...
... //depot/perl/ext/POSIX/POSIX.xs#153 edit
Differences ...
==== //depot/perl/ext/POSIX/POSIX.xs#153 (text) ====
Index: perl/ext/POSIX/POSIX.xs
--- perl/ext/POSIX/POSIX.xs#152~33896~ 2008-05-21 02:18:00.000000000 -0700
+++ perl/ext/POSIX/POSIX.xs 2008-05-21 03:31:32.000000000 -0700
@@ -649,26 +649,37 @@
int
WEXITSTATUS(status)
int status
-
-int
-WIFEXITED(status)
- int status
-
-int
-WIFSIGNALED(status)
- int status
-
-int
-WIFSTOPPED(status)
- int status
-
-int
-WSTOPSIG(status)
- int status
-
-int
-WTERMSIG(status)
- int status
+ ALIAS:
+ POSIX::WIFEXITED = 1
+ POSIX::WIFSIGNALED = 2
+ POSIX::WIFSTOPPED = 3
+ POSIX::WSTOPSIG = 4
+ POSIX::WTERMSIG = 5
+ CODE:
+ switch(ix) {
+ case 0:
+ RETVAL = WEXITSTATUS(status);
+ break;
+ case 1:
+ RETVAL = WIFEXITED(status);
+ break;
+ case 2:
+ RETVAL = WIFSIGNALED(status);
+ break;
+ case 3:
+ RETVAL = WIFSTOPPED(status);
+ break;
+ case 4:
+ RETVAL = WSTOPSIG(status);
+ break;
+ case 5:
+ RETVAL = WTERMSIG(status);
+ break;
+ default:
+ Perl_croak(aTHX_ "Illegal alias %d for POSIX::W*", ix);
+ }
+ OUTPUT:
+ RETVAL
int
isalnum(charstring)
End of Patch.