Change 16220 by jhi@alpha on 2002/04/27 16:27:18

        Integrate perlio;
        
        Fix weird warnings and/pr segfaults on binmode(,"encoding(...)")
        - if encoding loads Encode then stack grows.
        - pp_binmode was not allowing for that to happen
        - added PUTBACK/SPAGAIN.

Affected files ...

.... //depot/perl/pp_sys.c#303 integrate

Differences ...

==== //depot/perl/pp_sys.c#303 (text) ====
Index: perl/pp_sys.c
--- perl/pp_sys.c.~1~   Sat Apr 27 10:30:06 2002
+++ perl/pp_sys.c       Sat Apr 27 10:30:06 2002
@@ -731,11 +731,16 @@
         RETPUSHUNDEF;
     }
 
+    PUTBACK;
     if (PerlIO_binmode(aTHX_ fp,IoTYPE(io),mode_from_discipline(discp),
-                       (discp) ? SvPV_nolen(discp) : Nullch))
+                       (discp) ? SvPV_nolen(discp) : Nullch)) {
+       SPAGAIN;
        RETPUSHYES;
-    else
+    }
+    else {
+       SPAGAIN;
        RETPUSHUNDEF;
+    }
 }
 
 PP(pp_tie)
@@ -4040,7 +4045,7 @@
        TAINT_ENV();
        while (++MARK <= SP) {
            (void)SvPV_nolen(*MARK);      /* stringify for taint check */
-           if (PL_tainted) 
+           if (PL_tainted)
                break;
        }
        MARK = ORIGMARK;
@@ -4166,7 +4171,7 @@
        TAINT_ENV();
        while (++MARK <= SP) {
            (void)SvPV_nolen(*MARK);      /* stringify for taint check */
-           if (PL_tainted) 
+           if (PL_tainted)
                break;
        }
        MARK = ORIGMARK;
End of Patch.

Reply via email to