Remove pseudo-hashes (complete)
[p5sagit/p5-mst-13.2.git] / dump.c
diff --git a/dump.c b/dump.c
index 969fac5..50573ba 100644 (file)
--- a/dump.c
+++ b/dump.c
@@ -75,8 +75,8 @@ Perl_dump_sub(pTHX_ GV *gv)
     gv_fullname3(sv, gv, Nullch);
     Perl_dump_indent(aTHX_ 0, Perl_debug_log, "\nSUB %s = ", SvPVX(sv));
     if (CvXSUB(GvCV(gv)))
-       Perl_dump_indent(aTHX_ 0, Perl_debug_log, "(xsub 0x%lx %d)\n",
-           (long)CvXSUB(GvCV(gv)),
+       Perl_dump_indent(aTHX_ 0, Perl_debug_log, "(xsub 0x%"UVxf" %d)\n",
+           PTR2UV(CvXSUB(GvCV(gv))),
            (int)CvXSUBANY(GvCV(gv)).any_i32);
     else if (CvROOT(GvCV(gv)))
        op_dump(CvROOT(GvCV(gv)));
@@ -461,8 +461,6 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o)
         else if (o->op_type == OP_AASSIGN) {
            if (o->op_private & OPpASSIGN_COMMON)
                sv_catpv(tmpsv, ",COMMON");
-           if (o->op_private & OPpASSIGN_HASH)
-               sv_catpv(tmpsv, ",HASH");
        }
        else if (o->op_type == OP_SASSIGN) {
            if (o->op_private & OPpASSIGN_BACKWARDS)
@@ -617,7 +615,7 @@ Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o)
     case OP_GVSV:
     case OP_GV:
 #ifdef USE_ITHREADS
-       Perl_dump_indent(aTHX_ level, file, "PADIX = %d\n", cPADOPo->op_padix);
+       Perl_dump_indent(aTHX_ level, file, "PADIX = %" IVdf "\n", (IV)cPADOPo->op_padix);
 #else
        if (cSVOPo->op_sv) {
            SV *tmpsv = NEWSV(0,0);
@@ -731,7 +729,7 @@ Perl_gv_dump(pTHX_ GV *gv)
 }
 
 
-/* map magic types to the symbolic name
+/* map magic types to the symbolic names
  * (with the PERL_MAGIC_ prefixed stripped)
  */
 
@@ -747,6 +745,7 @@ static struct { char type; char *name; } magic_names[] = {
        { PERL_MAGIC_env,            "env(E)" },
        { PERL_MAGIC_isa,            "isa(I)" },
        { PERL_MAGIC_dbfile,         "dbfile(L)" },
+       { PERL_MAGIC_shared,         "shared(N)" },
        { PERL_MAGIC_tied,           "tied(P)" },
        { PERL_MAGIC_sig,            "sig(S)" },
        { PERL_MAGIC_uvar,           "uvar(U)" },
@@ -760,12 +759,14 @@ static struct { char type; char *name; } magic_names[] = {
        { PERL_MAGIC_nkeys,          "nkeys(k)" },
        { PERL_MAGIC_dbline,         "dbline(l)" },
        { PERL_MAGIC_mutex,          "mutex(m)" },
+       { PERL_MAGIC_shared_scalar,  "shared_scalar(n)" },
        { PERL_MAGIC_collxfrm,       "collxfrm(o)" },
        { PERL_MAGIC_tiedelem,       "tiedelem(p)" },
        { PERL_MAGIC_tiedscalar,     "tiedscalar(q)" },
        { PERL_MAGIC_qr,             "qr(r)" },
        { PERL_MAGIC_sigelem,        "sigelem(s)" },
        { PERL_MAGIC_taint,          "taint(t)" },
+       { PERL_MAGIC_uvar_elem,      "uvar_elem(v)" },
        { PERL_MAGIC_vec,            "vec(v)" },
        { PERL_MAGIC_substr,         "substr(x)" },
        { PERL_MAGIC_defelem,        "defelem(y)" },
@@ -976,6 +977,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo
        if (SvCOMPILED(sv))     sv_catpv(d, "COMPILED,");
        if (CvLVALUE(sv))       sv_catpv(d, "LVALUE,");
        if (CvMETHOD(sv))       sv_catpv(d, "METHOD,");
+       if (CvLOCKED(sv))       sv_catpv(d, "LOCKED,");
        break;
     case SVt_PVHV:
        if (HvSHAREKEYS(sv))    sv_catpv(d, "SHAREKEYS,");
@@ -1387,7 +1389,16 @@ Perl_runops_debug(pTHX)
                              "WARNING: %"UVxf" changed from %"UVxf" to %"UVxf"\n",
                              PTR2UV(PL_watchaddr), PTR2UV(PL_watchok),
                              PTR2UV(*PL_watchaddr));
-           if (DEBUG_s_TEST_) debstack();
+           if (DEBUG_s_TEST_) {
+               if (DEBUG_v_TEST_) {
+                   PerlIO_printf(Perl_debug_log, "\n");
+                   deb_stack_all();
+               }
+               else
+                   debstack();
+           }
+
+
            if (DEBUG_t_TEST_) debop(PL_op);
            if (DEBUG_P_TEST_) debprof(PL_op);
        }