This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
podcheck.t: Remove extra loop initialization
[perl5.git] / dump.c
diff --git a/dump.c b/dump.c
index f9556c3..9990c8d 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -811,7 +811,6 @@ const struct flag_to_name op_trans_names[] = {
 const struct flag_to_name op_entersub_names[] = {
     {OPpENTERSUB_DB, ",DB"},
     {OPpENTERSUB_HASTARG, ",HASTARG"},
-    {OPpENTERSUB_NOMOD, ",NOMOD"},
     {OPpENTERSUB_AMPER, ",AMPER"},
     {OPpENTERSUB_NOPAREN, ",NOPAREN"},
     {OPpENTERSUB_INARGS, ",INARGS"}
@@ -822,7 +821,6 @@ const struct flag_to_name op_const_names[] = {
     {OPpCONST_SHORTCIRCUIT, ",SHORTCIRCUIT"},
     {OPpCONST_STRICT, ",STRICT"},
     {OPpCONST_ENTERED, ",ENTERED"},
-    {OPpCONST_ARYBASE, ",ARYBASE"},
     {OPpCONST_BARE, ",BARE"},
     {OPpCONST_WARNING, ",WARNING"}
 };
@@ -1021,10 +1019,6 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, const OP *o)
                    sv_catpv(tmpsv, ",MAYBE_LVSUB");
            }
 
-           if ((optype==OP_RV2SV || optype==OP_RV2AV || optype==OP_RV2HV)
-                   && (o->op_private & OPpDEREFed))
-               sv_catpv(tmpsv, ",DEREFed");
-
            if (optype == OP_AELEM || optype == OP_HELEM) {
                if (o->op_private & OPpLVAL_DEFER)
                    sv_catpv(tmpsv, ",LVAL_DEFER");
@@ -1447,6 +1441,7 @@ const struct flag_to_name cv_flags_names[] = {
     {CVf_METHOD, "METHOD,"},
     {CVf_WEAKOUTSIDE, "WEAKOUTSIDE,"},
     {CVf_CVGV_RC, "CVGV_RC,"},
+    {CVf_DYNFILE, "DYNFILE,"},
     {CVf_ISXSUB, "ISXSUB,"}
 };
 
@@ -1919,32 +1914,39 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
            }
        }
        if (nest < maxnest) {
-           if (HvEITER_get(sv)) /* preserve iterator */
-               Perl_dump_indent(aTHX_ level, file,
-                   "  (*** Active iterator; skipping element dump ***)\n");
-           else {
-               HE *he;
-               HV * const hv = MUTABLE_HV(sv);
-               int count = maxnest - nest;
+           HV * const hv = MUTABLE_HV(sv);
+           STRLEN i;
+           HE *he;
 
-               hv_iterinit(hv);
-               while ((he = hv_iternext_flags(hv, HV_ITERNEXT_WANTPLACEHOLDERS))
-                      && count--) {
-                   STRLEN len;
-                   const U32 hash = HeHASH(he);
-                   SV * const keysv = hv_iterkeysv(he);
-                   const char * const keypv = SvPV_const(keysv, len);
-                   SV * const elt = hv_iterval(hv, he);
-
-                   Perl_dump_indent(aTHX_ level+1, file, "Elt %s ", pv_display(d, keypv, len, 0, pvlim));
-                   if (SvUTF8(keysv))
-                       PerlIO_printf(file, "[UTF8 \"%s\"] ", sv_uni_display(d, keysv, 6 * SvCUR(keysv), UNI_DISPLAY_QQ));
-                   if (HeKREHASH(he))
-                       PerlIO_printf(file, "[REHASH] ");
-                   PerlIO_printf(file, "HASH = 0x%"UVxf"\n", (UV)hash);
-                   do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim);
+           if (HvARRAY(hv)) {
+               int count = maxnest - nest;
+               for (i=0; i <= HvMAX(hv); i++) {
+                   for (he = HvARRAY(hv)[i]; he; he = HeNEXT(he)) {
+                       U32 hash;
+                       SV * keysv;
+                       const char * keypv;
+                       SV * elt;
+               STRLEN len;
+
+                       if (count-- <= 0) goto DONEHV;
+
+                       hash = HeHASH(he);
+                       keysv = hv_iterkeysv(he);
+                       keypv = SvPV_const(keysv, len);
+                       elt = HeVAL(he);
+
+               Perl_dump_indent(aTHX_ level+1, file, "Elt %s ", pv_display(d, keypv, len, 0, pvlim));
+               if (SvUTF8(keysv))
+                   PerlIO_printf(file, "[UTF8 \"%s\"] ", sv_uni_display(d, keysv, 6 * SvCUR(keysv), UNI_DISPLAY_QQ));
+                       if (HvEITER_get(hv) == he)
+                           PerlIO_printf(file, "[CURRENT] ");
+               if (HeKREHASH(he))
+                   PerlIO_printf(file, "[REHASH] ");
+                       PerlIO_printf(file, "HASH = 0x%"UVxf"\n", (UV) hash);
+               do_sv_dump(level+1, file, elt, nest+1, maxnest, dumpops, pvlim);
+           }
                }
-               hv_iterinit(hv);                /* Return to status quo */
+             DONEHV:;
            }
        }
        break;
@@ -2955,8 +2957,6 @@ Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
                    sv_catpv(tmpsv, ",NOPAREN");
                if (o->op_private & OPpENTERSUB_INARGS)
                    sv_catpv(tmpsv, ",INARGS");
-               if (o->op_private & OPpENTERSUB_NOMOD)
-                   sv_catpv(tmpsv, ",NOMOD");
            }
            else {
                switch (o->op_private & OPpDEREF) {
@@ -2989,8 +2989,6 @@ Perl_do_op_xmldump(pTHX_ I32 level, PerlIO *file, const OP *o)
                sv_catpv(tmpsv, ",BARE");
            if (o->op_private & OPpCONST_STRICT)
                sv_catpv(tmpsv, ",STRICT");
-           if (o->op_private & OPpCONST_ARYBASE)
-               sv_catpv(tmpsv, ",ARYBASE");
            if (o->op_private & OPpCONST_WARNING)
                sv_catpv(tmpsv, ",WARNING");
            if (o->op_private & OPpCONST_ENTERED)