Allow bareword file handle as argument to chdir().
[p5sagit/p5-mst-13.2.git] / pad.c
diff --git a/pad.c b/pad.c
index d1fa757..0b61c3c 100644 (file)
--- a/pad.c
+++ b/pad.c
@@ -1,6 +1,6 @@
 /*    pad.c
  *
- *    Copyright (C) 2002, 2003, 2004, 2005 by Larry Wall and others
+ *    Copyright (C) 2002, 2003, 2004, 2005, 2006, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -180,7 +180,7 @@ Perl_pad_new(pTHX_ int flags)
        AvREIFY_only(a0);
     }
     else {
-       av_store(pad, 0, Nullsv);
+       av_store(pad, 0, NULL);
     }
 
     AvREAL_off(padlist);
@@ -264,11 +264,11 @@ Perl_pad_undef(pTHX_ CV* cv)
                CV * const innercv = (CV*)curpad[ix];
                U32 inner_rc = SvREFCNT(innercv);
                assert(inner_rc);
-               namepad[ix] = Nullsv;
+               namepad[ix] = NULL;
                SvREFCNT_dec(namesv);
 
                if (SvREFCNT(comppad) < 2) { /* allow for /(?{ sub{} })/  */
-                   curpad[ix] = Nullsv;
+                   curpad[ix] = NULL;
                    SvREFCNT_dec(innercv);
                    inner_rc--;
                }
@@ -284,7 +284,7 @@ Perl_pad_undef(pTHX_ CV* cv)
                        (void)SvREFCNT_inc(outercv);
                    }
                    else {
-                       CvOUTSIDE(innercv) = Nullcv;
+                       CvOUTSIDE(innercv) = NULL;
                    }
 
                }
@@ -333,7 +333,7 @@ Perl_pad_add_name(pTHX_ const char *name, HV* typestash, HV* ourstash, bool fake
 {
     dVAR;
     const PADOFFSET offset = pad_alloc(OP_PADSV, SVs_PADMY);
-    SV* const namesv = NEWSV(1102, 0);
+    SV* const namesv = newSV(0);
 
     ASSERT_CURPAD_ACTIVE("pad_add_name");
 
@@ -411,6 +411,7 @@ Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype)
     SV *sv;
     I32 retval;
 
+    PERL_UNUSED_ARG(optype);
     ASSERT_CURPAD_ACTIVE("pad_alloc");
 
     if (AvARRAY(PL_comppad) != PL_curpad)
@@ -468,7 +469,7 @@ Perl_pad_add_anon(pTHX_ SV* sv, OPCODE op_type)
 {
     dVAR;
     PADOFFSET ix;
-    SV* const name = NEWSV(1106, 0);
+    SV* const name = newSV(0);
     sv_upgrade(name, SVt_PVNV);
     sv_setpvn(name, "&", 1);
     SvIV_set(name, -1);
@@ -735,7 +736,7 @@ S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn,
 
                /* our ? */
                if ((SvFLAGS(*out_name_sv) & SVpad_OUR)) {
-                   *out_capture = Nullsv;
+                   *out_capture = NULL;
                    return offset;
                }
 
@@ -747,7 +748,7 @@ S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn,
                    if (warn && ckWARN(WARN_CLOSURE))
                        Perl_warner(aTHX_ packWARN(WARN_CLOSURE),
                            "Variable \"%s\" is not available", name);
-                   *out_capture = Nullsv;
+                   *out_capture = NULL;
                }
 
                /* real value */
@@ -786,7 +787,7 @@ S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn,
                        if (ckWARN(WARN_CLOSURE))
                            Perl_warner(aTHX_ packWARN(WARN_CLOSURE),
                                "Variable \"%s\" is not available", name);
-                       *out_capture = Nullsv;
+                       *out_capture = NULL;
                    }
                }
                if (!*out_capture) {
@@ -1080,7 +1081,7 @@ Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust)
     /* if pad tmps aren't shared between ops, then there's no need to
      * create a new tmp when an existing op is freed */
 #ifdef USE_BROKEN_PAD_RESET
-    PL_curpad[po] = NEWSV(1107,0);
+    PL_curpad[po] = newSV(0);
     SvPADTMP_on(PL_curpad[po]);
 #else
     PL_curpad[po] = &PL_sv_undef;
@@ -1179,7 +1180,7 @@ Perl_pad_tidy(pTHX_ padtidy_type type)
 
     /* extend curpad to match namepad */
     if (AvFILLp(PL_comppad_name) < AvFILLp(PL_comppad))
-       av_store(PL_comppad_name, AvFILLp(PL_comppad), Nullsv);
+       av_store(PL_comppad_name, AvFILLp(PL_comppad), NULL);
 
     if (type == padtidy_SUBCLONE) {
        SV * const * const namep = AvARRAY(PL_comppad_name);
@@ -1195,12 +1196,12 @@ Perl_pad_tidy(pTHX_ padtidy_type type)
             * pad are anonymous subs.
             * The rest are created anew during cloning.
             */
-           if (!((namesv = namep[ix]) != Nullsv &&
+           if (!((namesv = namep[ix]) != NULL &&
                  namesv != &PL_sv_undef &&
                   *SvPVX_const(namesv) == '&'))
            {
                SvREFCNT_dec(PL_curpad[ix]);
-               PL_curpad[ix] = Nullsv;
+               PL_curpad[ix] = NULL;
            }
        }
     }
@@ -1313,7 +1314,7 @@ Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full)
     for (ix = 1; ix <= AvFILLp(pad_name); ix++) {
         const SV *namesv = pname[ix];
        if (namesv && namesv == &PL_sv_undef) {
-           namesv = Nullsv;
+           namesv = NULL;
        }
        if (namesv) {
            if (SvFAKE(namesv))
@@ -1438,7 +1439,7 @@ Perl_cv_clone(pTHX_ CV *proto)
     ENTER;
     SAVESPTR(PL_compcv);
 
-    cv = PL_compcv = (CV*)NEWSV(1104, 0);
+    cv = PL_compcv = (CV*)newSV(0);
     sv_upgrade((SV *)cv, SvTYPE(proto));
     CvFLAGS(cv) = CvFLAGS(proto) & ~(CVf_CLONE|CVf_WEAKOUTSIDE);
     CvCLONED_on(cv);
@@ -1472,8 +1473,8 @@ Perl_cv_clone(pTHX_ CV *proto)
     outpad = AvARRAY(AvARRAY(CvPADLIST(outside))[depth]);
 
     for (ix = fpad; ix > 0; ix--) {
-       SV* const namesv = (ix <= fname) ? pname[ix] : Nullsv;
-       SV *sv = Nullsv;
+       SV* const namesv = (ix <= fname) ? pname[ix] : NULL;
+       SV *sv = NULL;
        if (namesv && namesv != &PL_sv_undef) { /* lexical */
            if (SvFAKE(namesv)) {   /* lexical from outside? */
                sv = outpad[(I32)SvNVX(namesv)];
@@ -1483,7 +1484,7 @@ Perl_cv_clone(pTHX_ CV *proto)
                    if (ckWARN(WARN_CLOSURE))
                        Perl_warner(aTHX_ packWARN(WARN_CLOSURE),
                            "Variable \"%s\" is not available", SvPVX_const(namesv));
-                   sv = Nullsv;
+                   sv = NULL;
                }
                else {
                    assert(!SvPADSTALE(sv));
@@ -1499,7 +1500,7 @@ Perl_cv_clone(pTHX_ CV *proto)
                 else if (sigil == '%')
                    sv = (SV*)newHV();
                else
-                   sv = NEWSV(0, 0);
+                   sv = newSV(0);
                SvPADMY_on(sv);
            }
        }
@@ -1507,7 +1508,7 @@ Perl_cv_clone(pTHX_ CV *proto)
            sv = SvREFCNT_inc(ppad[ix]);
        }
        else {
-           sv = NEWSV(0, 0);
+           sv = newSV(0);
            SvPADTMP_on(sv);
        }
        PL_curpad[ix] = sv;
@@ -1531,7 +1532,7 @@ Perl_cv_clone(pTHX_ CV *proto)
        SV* const const_sv = op_const_sv(CvSTART(cv), cv);
        if (const_sv) {
            SvREFCNT_dec(cv);
-           cv = newCONSTSUB(CvSTASH(proto), Nullch, const_sv);
+           cv = newCONSTSUB(CvSTASH(proto), NULL, const_sv);
        }
        else {
            CvCONST_off(cv);
@@ -1615,7 +1616,7 @@ Perl_pad_push(pTHX_ PADLIST *padlist, int depth)
                    else if (sigil == '%')
                        sv = (SV*)newHV();
                    else
-                       sv = NEWSV(0, 0);
+                       sv = newSV(0);
                    av_store(newpad, ix, sv);
                    SvPADMY_on(sv);
                }
@@ -1625,7 +1626,7 @@ Perl_pad_push(pTHX_ PADLIST *padlist, int depth)
            }
            else {
                /* save temporaries on recursion? */
-               SV * const sv = NEWSV(0, 0);
+               SV * const sv = newSV(0);
                av_store(newpad, ix, sv);
                SvPADTMP_on(sv);
            }