Reorder Fcntl's bootstrapping so that the constants actually get
Nicholas Clark [Sat, 7 Jan 2006 17:19:29 +0000 (17:19 +0000)]
inlined within the functions that Fcntl defines.

p4raw-id: //depot/perl@26701

ext/Fcntl/Fcntl.pm

index 7ef0038..067c061 100644 (file)
@@ -60,7 +60,10 @@ our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD);
 require Exporter;
 use XSLoader ();
 @ISA = qw(Exporter);
-$VERSION = "1.05";
+BEGIN {
+  $VERSION = "1.05";
+}
+
 # Items to export into callers namespace by default
 # (move infrequently used names to @EXPORT_OK below)
 @EXPORT =
@@ -206,18 +209,23 @@ $VERSION = "1.05";
                   )],
 );
 
-sub S_IFMT  { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT()  }
+# Force the constants to become inlined
+BEGIN {
+  XSLoader::load 'Fcntl', $VERSION;
+}
+
+sub S_IFMT  { @_ ? ( $_[0] & _S_IFMT ) : _S_IFMT  }
 sub S_IMODE { $_[0] & 07777 }
 
-sub S_ISREG    { ( $_[0] & _S_IFMT() ) == S_IFREG()   }
-sub S_ISDIR    { ( $_[0] & _S_IFMT() ) == S_IFDIR()   }
-sub S_ISLNK    { ( $_[0] & _S_IFMT() ) == S_IFLNK()   }
-sub S_ISSOCK   { ( $_[0] & _S_IFMT() ) == S_IFSOCK()  }
-sub S_ISBLK    { ( $_[0] & _S_IFMT() ) == S_IFBLK()   }
-sub S_ISCHR    { ( $_[0] & _S_IFMT() ) == S_IFCHR()   }
-sub S_ISFIFO   { ( $_[0] & _S_IFMT() ) == S_IFIFO()   }
-sub S_ISWHT    { ( $_[0] & _S_IFMT() ) == S_IFWHT()   }
-sub S_ISENFMT  { ( $_[0] & _S_IFMT() ) == S_IFENFMT() }
+sub S_ISREG    { ( $_[0] & _S_IFMT ) == S_IFREG   }
+sub S_ISDIR    { ( $_[0] & _S_IFMT ) == S_IFDIR   }
+sub S_ISLNK    { ( $_[0] & _S_IFMT ) == S_IFLNK   }
+sub S_ISSOCK   { ( $_[0] & _S_IFMT ) == S_IFSOCK  }
+sub S_ISBLK    { ( $_[0] & _S_IFMT ) == S_IFBLK   }
+sub S_ISCHR    { ( $_[0] & _S_IFMT ) == S_IFCHR   }
+sub S_ISFIFO   { ( $_[0] & _S_IFMT ) == S_IFIFO   }
+sub S_ISWHT    { ( $_[0] & _S_IFMT ) == S_IFWHT   }
+sub S_ISENFMT  { ( $_[0] & _S_IFMT ) == S_IFENFMT }
 
 sub AUTOLOAD {
     (my $constname = $AUTOLOAD) =~ s/.*:://;
@@ -231,6 +239,4 @@ sub AUTOLOAD {
     goto &$AUTOLOAD;
 }
 
-XSLoader::load 'Fcntl', $VERSION;
-
 1;