From: Steve Peters Date: Sat, 8 Nov 2008 15:51:45 +0000 (+0000) Subject: From change #34775, reverting perlio.c change for now. Also, X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=2376d97dd5675c65de55efc384814387b6c9a63f;p=p5sagit%2Fp5-mst-13.2.git From change #34775, reverting perlio.c change for now. Also, setting the tests to TODO. p4raw-link: @34775 on //depot/perl: 2556f95e0f4f5e8e95c9766374614ab52edefe3d p4raw-id: //depot/perl@34778 --- diff --git a/ext/PerlIO/t/ioleaks.t b/ext/PerlIO/t/ioleaks.t index 54b0ee1..ad76c39 100644 --- a/ext/PerlIO/t/ioleaks.t +++ b/ext/PerlIO/t/ioleaks.t @@ -10,14 +10,17 @@ use Test::More 'no_plan'; # :perlio -> ok # :crlf -> ok -foreach my $layer(qw(:unix :stdio :perlio :crlf)){ - my $base_fd = do{ open my $in, '<', $0 or die $!; fileno $in }; +TODO: { + local $TODO = "[perl #56644] PerlIO resource leaks on open() and then :pop in :unix and :stdio"; + foreach my $layer(qw(:unix :stdio :perlio :crlf)){ + my $base_fd = do{ open my $in, '<', $0 or die $!; fileno $in }; - for(1 .. 3){ - open my $fh, "<$layer", $0 or die $!; + for(1 .. 3){ + open my $fh, "<$layer", $0 or die $!; - is fileno($fh), $base_fd, $layer; - binmode $fh, ':pop'; - } + is fileno($fh), $base_fd, $layer; + binmode $fh, ':pop'; + } + } } diff --git a/perlio.c b/perlio.c index 436bb85..a3ea344 100644 --- a/perlio.c +++ b/perlio.c @@ -2736,14 +2736,9 @@ PerlIOUnix_tell(pTHX_ PerlIO *f) return PerlLIO_lseek(PerlIOSelf(f, PerlIOUnix)->fd, 0, SEEK_CUR); } -IV -PerlIOUnix_close(pTHX_ PerlIO *f) -{ - return PerlIOBase_noop_ok(aTHX_ f); -} IV -PerlIOUnix_popped(pTHX_ PerlIO *f) +PerlIOUnix_close(pTHX_ PerlIO *f) { dVAR; const int fd = PerlIOSelf(f, PerlIOUnix)->fd; @@ -2777,7 +2772,7 @@ PERLIO_FUNCS_DECL(PerlIO_unix) = { sizeof(PerlIOUnix), PERLIO_K_RAW, PerlIOUnix_pushed, - PerlIOUnix_popped, + PerlIOBase_popped, PerlIOUnix_open, PerlIOBase_binmode, /* binmode */ NULL, @@ -3127,12 +3122,6 @@ PerlIOStdio_invalidate_fileno(pTHX_ FILE *f) IV PerlIOStdio_close(pTHX_ PerlIO *f) { - return PerlIOBase_noop_ok(aTHX_ f); -} - -IV -PerlIOStdio_popped(pTHX_ PerlIO *f) -{ FILE * const stdio = PerlIOSelf(f, PerlIOStdio)->stdio; if (!stdio) { errno = EBADF; @@ -3569,7 +3558,7 @@ PERLIO_FUNCS_DECL(PerlIO_stdio) = { sizeof(PerlIOStdio), PERLIO_K_BUFFERED|PERLIO_K_RAW, PerlIOStdio_pushed, - PerlIOStdio_popped, + PerlIOBase_popped, PerlIOStdio_open, PerlIOBase_binmode, /* binmode */ NULL,