Fix bug in optimized pseudo-layers.
Nick Ing-Simmons [Fri, 21 Jun 2002 08:46:57 +0000 (08:46 +0000)]
p4raw-id: //depot/perlio@17335

perlio.c

index f8d6517..7c06b5a 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -1016,6 +1016,8 @@ PerlIO_push(pTHX_ PerlIO *f, PerlIO_funcs *tab, const char *mode, SV *arg)
     }
     else if (f) {
        /* Pseudo-layer where push does its own stack adjust */
+       PerlIO_debug("PerlIO_push f=%p %s %s %p\n", (void*)f, tab->name,
+                    (mode) ? mode : "(Null)", (void*)arg);
        if ((*tab->Pushed) (aTHX_ f, mode, arg, tab) != 0) {
            return NULL;
        }
@@ -1697,7 +1699,7 @@ Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR * ptr, int cnt)
 IV
 PerlIOUtf8_pushed(pTHX_ PerlIO *f, const char *mode, SV *arg, PerlIO_funcs *tab)
 {
-    if (*PerlIONext(f)) {
+    if (PerlIOValid(f)) {
        if (tab->kind & PERLIO_K_UTF8)
            PerlIOBase(f)->flags |= PERLIO_F_UTF8;
        else