dougm 01/05/03 20:39:24
Modified: lib/ModPerl WrapXS.pm
Log:
make handcrafted xsubs GvSHARED
Revision Changes Path
1.16 +4 -2 modperl-2.0/lib/ModPerl/WrapXS.pm
Index: WrapXS.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/lib/ModPerl/WrapXS.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- WrapXS.pm 2001/05/03 16:28:44 1.15
+++ WrapXS.pm 2001/05/04 03:39:24 1.16
@@ -3,6 +3,7 @@
use strict;
use warnings FATAL => 'all';
+use constant GvSHARED => $^V gt v5.7.0;
use Apache::Build ();
use ModPerl::Code ();
use ModPerl::TypeMap ();
@@ -401,7 +402,7 @@
my($self, $name) = @_;
my $str = "";
return $str if $name =~ /$notshared$/o;
- $str = " ATTRS: shared\n" if $^V gt v5.7.0;
+ $str = " ATTRS: shared\n" if GvSHARED;
$str;
}
@@ -460,7 +461,8 @@
if (my $newxs = $self->{newXS}->{$module}) {
for my $xs (@$newxs) {
- print $fh qq{ (void)newXS("$xs->[0]", $xs->[1], __FILE__);\n};
+ print $fh qq{ cv = newXS("$xs->[0]", $xs->[1], __FILE__);\n};
+ print $fh qq{ GvSHARED_on(CvGV(cv));\n} if GvSHARED;
}
}