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.

Reply via email to