dougm       01/05/03 09:28:49

  Modified:    lib/ModPerl WrapXS.pm
  Log:
  make xsubs shared if Perl > 5.7.0
  
  Revision  Changes    Path
  1.15      +16 -0     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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- WrapXS.pm 2001/05/03 05:41:02     1.14
  +++ WrapXS.pm 2001/05/03 16:28:44     1.15
  @@ -103,10 +103,13 @@
           my $return_type =
             $name =~ /^DESTROY$/ ? 'void' : $func->{return_type};
   
  +        my $attrs = $self->attrs($name);
  +
           my $code = <<EOF;
   $return_type
   $name($xs_parms)
   $proto
  +$attrs
   EOF
   
           if ($dispatch || $orig_args) {
  @@ -185,6 +188,8 @@
                   $preinit = "STRLEN val_len;";
               }
   
  +            my $attrs = $self->attrs($name);
  +
               my $code = <<EOF;
   $type
   $name(obj, val=$default)
  @@ -193,6 +198,7 @@
   
       PREINIT:
       $preinit
  +$attrs
   
       CODE:
       RETVAL = ($cast) obj->$name;
  @@ -386,6 +392,16 @@
           $str = '    mpxs_' . $self->cname($module) . "_BOOT(aTHXo);\n";
       }
   
  +    $str;
  +}
  +
  +my $notshared = join '|', qw(TIEHANDLE); #not sure why yet
  +
  +sub attrs {
  +    my($self, $name) = @_;
  +    my $str = "";
  +    return $str if $name =~ /$notshared$/o;
  +    $str = "    ATTRS: shared\n" if $^V gt v5.7.0;
       $str;
   }
   
  
  
  

Reply via email to