extra code in pp_concat, Take 2
[p5sagit/p5-mst-13.2.git] / doio.c
diff --git a/doio.c b/doio.c
index e9effd9..3847da6 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -219,7 +219,6 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
 
        if (num_svs) {
            /* New style explicit name, type is just mode and layer info */
-           STRLEN l = 0;
 #ifdef USE_STDIO
            if (SvROK(*svp) && !strchr(name,'&')) {
                if (ckWARN(WARN_IO))
@@ -229,9 +228,7 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                goto say_false;
            }
 #endif /* USE_STDIO */
-           name = SvOK(*svp) ? SvPV(*svp, l) : "";
-           len = (I32)l;
-           name = savepvn(name, len);
+           name = SvOK(*svp) ? savesvpv (*svp) : savepvn ("", 0);
            SAVEFREEPV(name);
        }
        else {
@@ -677,10 +674,10 @@ Perl_do_openn(pTHX_ GV *gv, register char *name, I32 len, int as_raw,
                 sv = *av_fetch(PL_fdpid,fd,TRUE);
                 (void)SvUPGRADE(sv, SVt_IV);
                 pid = SvIVX(sv);
-                SvIVX(sv) = 0;
+                SvIV_set(sv, 0);
                 sv = *av_fetch(PL_fdpid,savefd,TRUE);
                 (void)SvUPGRADE(sv, SVt_IV);
-                SvIVX(sv) = pid;
+                SvIV_set(sv, pid);
                 UNLOCK_FDPID_MUTEX;
             }
 #endif
@@ -1833,16 +1830,17 @@ nothing in the core.
        if (sp - mark > 2) {
 #if defined(I_UTIME) || defined(VMS)
            struct utimbuf utbuf;
+           struct utimbuf *utbufp = &utbuf;
 #else
            struct {
                Time_t  actime;
                Time_t  modtime;
            } utbuf;
+           void *utbufp = &utbuf;
 #endif
 
            SV* accessed = *++mark;
            SV* modified = *++mark;
-           void * utbufp = &utbuf;
 
            /* Be like C, and if both times are undefined, let the C
             * library figure out what to do.  This usually means