stas        2003/08/20 16:53:16

  Modified:    t/response/TestAPR perlio.pm
               xs/APR/PerlIO apr_perlio.c
               .        Changes
  Log:
  APR::PerlIO now accepts the pool object instead of a request/server
  objects, so it can be used anywhere, including outside mod_perl
  
  Revision  Changes    Path
  1.21      +8 -8      modperl-2.0/t/response/TestAPR/perlio.pm
  
  Index: perlio.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/perlio.pm,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- perlio.pm 29 Jul 2003 15:38:36 -0000      1.20
  +++ perlio.pm 20 Aug 2003 23:53:16 -0000      1.21
  @@ -48,7 +48,7 @@
       my $file = catfile $dir, "test";
       t_debug "open file $file for writing";
       my $foo = "bar";
  -    open my $fh, ">:APR", $file, $r
  +    open my $fh, ">:APR", $file, $r->pool
           or die "Cannot open $file for writing: $!";
       ok ref($fh) eq 'GLOB';
   
  @@ -65,7 +65,7 @@
   
           # non-existent file
           my $file = "/this/file/does/not/exist";
  -        if (open my $fh, "<:APR", $file, $r) {
  +        if (open my $fh, "<:APR", $file, $r->pool) {
               t_debug "must not be able to open $file!";
               ok 0;
               close $fh;
  @@ -79,7 +79,7 @@
   
       # seek/tell() tests
       unless (LARGE_FILES_CONFLICT) {
  -        open my $fh, "<:APR", $file, $r 
  +        open my $fh, "<:APR", $file, $r->pool
               or die "Cannot open $file for reading: $!";
   
           # read the whole file so we can test the buffer flushed
  @@ -116,7 +116,7 @@
   
       # read() tests
       {
  -        open my $fh, "<:APR", $file, $r
  +        open my $fh, "<:APR", $file, $r->pool
               or die "Cannot open $file for reading: $!";
   
           # basic open test
  @@ -150,7 +150,7 @@
   
       # eof() tests
       {
  -        open my $fh, "<:APR", $file, $r 
  +        open my $fh, "<:APR", $file, $r->pool
               or die "Cannot open $file for reading: $!";
   
           ok t_cmp(0,
  @@ -170,7 +170,7 @@
   
       # dup() test
       {
  -        open my $fh, "<:APR", $file, $r 
  +        open my $fh, "<:APR", $file, $r->pool
               or die "Cannot open $file for reading: $!";
   
           open my $dup_fh, "<&:APR", $fh
  @@ -188,9 +188,9 @@
   
       # unbuffered write
       {
  -        open my $wfh, ">:APR", $file, $r
  +        open my $wfh, ">:APR", $file, $r->pool
               or die "Cannot open $file for writing: $!";
  -        open my $rfh,  "<:APR", $file, $r
  +        open my $rfh,  "<:APR", $file, $r->pool
               or die "Cannot open $file for reading: $!";
   
           my $expected = "This is an un buffering write test";
  
  
  
  1.29      +10 -3     modperl-2.0/xs/APR/PerlIO/apr_perlio.c
  
  Index: apr_perlio.c
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/APR/PerlIO/apr_perlio.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- apr_perlio.c      29 Jul 2003 09:28:19 -0000      1.28
  +++ apr_perlio.c      20 Aug 2003 23:53:16 -0000      1.29
  @@ -89,10 +89,17 @@
       
       st = PerlIOSelf(f, PerlIOAPR);
   
  +    /* XXX: can't reuse a wrapper mp_xs_sv2_APR__Pool */
  +    /* XXX: should probably add checks on pool validity in all other callbacks */
       sv = args[narg-1];
  -    /* XXX: modperl_sv2pool cannot be used outside of httpd */
  -    st->pool = modperl_sv2pool(aTHX_ sv);
  -  
  +    if (SvROK(sv) && (SvTYPE(SvRV(sv)) == SVt_PVMG)) {
  +        st->pool = (apr_pool_t *)SvIV((SV*)SvRV(sv));
  +    }
  +    else {
  +        Perl_croak(aTHX_ "argument is not a blessed reference "
  +                   "(expecting an APR::Pool  derived object)");
  +    }
  +    
       rc = apr_file_open(&st->file, path, apr_flag, APR_OS_DEFAULT, st->pool);
   
   #ifdef PERLIO_APR_DEBUG
  
  
  
  1.210     +3 -0      modperl-2.0/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/Changes,v
  retrieving revision 1.209
  retrieving revision 1.210
  diff -u -r1.209 -r1.210
  --- Changes   20 Aug 2003 23:20:14 -0000      1.209
  +++ Changes   20 Aug 2003 23:53:16 -0000      1.210
  @@ -12,6 +12,9 @@
   
   =item 1.99_10-dev
   
  +APR::PerlIO now accepts the pool object instead of a request/server
  +objects, so it can be used anywhere, including outside mod_perl [Stas]
  +
   when perl is built with perlio enabled (5.8+) the new PerlIO Apache
   layer is used, so now one can push layers onto STDIN, STDOUT handles
   e.g. binmode(STDOUT, ':utf8'); [Stas]
  
  
  

Reply via email to