joes        2002/11/03 12:58:10

  Modified:    Request  Request.xs
  Log:
  Doug's 5.8.0 PerlIO* leak fix- see 
http://mathforum.org/epigone/modperl/glongsnaysimp
  
  Revision  Changes    Path
  1.29      +7 -12     httpd-apreq/Request/Request.xs
  
  Index: Request.xs
  ===================================================================
  RCS file: /home/cvs/httpd-apreq/Request/Request.xs,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- Request.xs        20 Jan 2002 17:27:35 -0000      1.28
  +++ Request.xs        3 Nov 2002 20:58:09 -0000       1.29
  @@ -491,8 +491,13 @@
   ApacheUpload_fh(upload)
       Apache::Upload upload
   
  +    PREINIT:
  +    int fd;
  +
       CODE:
  -    if (  ( RETVAL = PerlIO_importFILE(ApacheUpload_fh(upload),0) ) == NULL  
)
  +    fd = PerlLIO_dup(fileno(ApacheUpload_fh(upload)));
  +
  +    if ( !(RETVAL = PerlIO_fdopen(fd, "r")) )
            XSRETURN_UNDEF;
   
       OUTPUT:
  @@ -501,18 +506,8 @@
       CLEANUP:
       if (ST(0) != &PL_sv_undef) {
        IO *io = GvIOn((GV*)SvRV(ST(0)));
  -     int fd = PerlIO_fileno(IoIFP(io));
  -     PerlIO *fp;
  -
  -     fd = PerlLIO_dup(fd);
  -     if (!(fp = PerlIO_fdopen(fd, "r"))) { 
  -         PerlLIO_close(fd);
  -         croak("fdopen failed!");
  -     }
        if (upload->req->parsed)
  -         PerlIO_seek(fp, 0, 0);
  -
  -     IoIFP(io) = fp;         
  +         PerlIO_seek(IoIFP(io), 0, 0);
       }
   
   long
  
  
  

Reply via email to