dougm       01/05/02 22:41:02

  Modified:    lib/ModPerl FunctionMap.pm WrapXS.pm
  Log:
  add BOOT keyword to indicate a function should be called at BOOT time
  
  Revision  Changes    Path
  1.8       +4 -1      modperl-2.0/lib/ModPerl/FunctionMap.pm
  
  Index: FunctionMap.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/FunctionMap.pm,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- FunctionMap.pm    2001/05/03 04:56:31     1.7
  +++ FunctionMap.pm    2001/05/03 05:41:02     1.8
  @@ -57,7 +57,7 @@
       return @missing ? \@missing : undef;
   }
   
  -my $keywords = join '|', qw(MODULE PACKAGE PREFIX);
  +my $keywords = join '|', qw(MODULE PACKAGE PREFIX BOOT);
   
   sub guess_prefix {
       my $entry = shift;
  @@ -129,6 +129,9 @@
               }
               if ($cur{ISA}) {
                   $self->{isa}->{ $cur{MODULE} }->{$package} = delete $cur{ISA};
  +            }
  +            if ($cur{BOOT}) {
  +                $self->{boot}->{ $cur{MODULE} } = delete $cur{BOOT};
               }
           }
           else {
  
  
  
  1.14      +12 -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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- WrapXS.pm 2001/05/03 04:56:31     1.13
  +++ WrapXS.pm 2001/05/03 05:41:02     1.14
  @@ -378,6 +378,17 @@
       $str;
   }
   
  +sub boot {
  +    my($self, $module) = @_;
  +    my $str = "";
  +
  +    if (my $boot = $self->typemap->{function_map}->{boot}->{$module}) {
  +        $str = '    mpxs_' . $self->cname($module) . "_BOOT(aTHXo);\n";
  +    }
  +
  +    $str;
  +}
  +
   sub write_xs {
       my($self, $module, $functions) = @_;
   
  @@ -428,6 +439,7 @@
   
       print $fh "PROTOTYPES: disabled\n\n";
       print $fh "BOOT:\n";
  +    print $fh $self->boot($module);
       print $fh "    items = items; /* -Wall */\n\n";
   
       if (my $newxs = $self->{newXS}->{$module}) {
  
  
  

Reply via email to