phase 1 of somewhat major rearrangement of PERL_OBJECT stuff
[p5sagit/p5-mst-13.2.git] / dump.c
diff --git a/dump.c b/dump.c
index 24602e9..8b73a9a 100644 (file)
--- a/dump.c
+++ b/dump.c
 #include "EXTERN.h"
 #include "perl.h"
 
-#ifndef DEBUGGING
-void
-dump_all(void)
-{
-}
-#else  /* Rest of file is for DEBUGGING */
-
-#ifdef I_STDARG
+#ifndef PERL_OBJECT
 static void dump(char *pat, ...);
-#else
-static void dump();
-#endif
+#endif /* PERL_OBJECT */
 
 void
 dump_all(void)
 {
+#ifdef DEBUGGING
     dTHR;
     PerlIO_setlinebuf(Perl_debug_log);
-    if (main_root)
-       dump_op(main_root);
-    dump_packsubs(defstash);
+    if (PL_main_root)
+       dump_op(PL_main_root);
+    dump_packsubs(PL_defstash);
+#endif /* DEBUGGING */
 }
 
 void
 dump_packsubs(HV *stash)
 {
+#ifdef DEBUGGING
     dTHR;
     I32        i;
     HE *entry;
@@ -51,20 +45,24 @@ dump_packsubs(HV *stash)
        for (entry = HvARRAY(stash)[i]; entry; entry = HeNEXT(entry)) {
            GV *gv = (GV*)HeVAL(entry);
            HV *hv;
+           if (SvTYPE(gv) != SVt_PVGV || !GvGP(gv))
+               continue;
            if (GvCVu(gv))
                dump_sub(gv);
            if (GvFORM(gv))
                dump_form(gv);
            if (HeKEY(entry)[HeKLEN(entry)-1] == ':' &&
-             (hv = GvHV(gv)) && HvNAME(hv) && hv != defstash)
+             (hv = GvHV(gv)) && HvNAME(hv) && hv != PL_defstash)
                dump_packsubs(hv);              /* nested package */
        }
     }
+#endif /* DEBUGGING */
 }
 
 void
 dump_sub(GV *gv)
 {
+#ifdef DEBUGGING
     SV *sv = sv_newmortal();
 
     gv_fullname3(sv, gv, Nullch);
@@ -77,11 +75,13 @@ dump_sub(GV *gv)
        dump_op(CvROOT(GvCV(gv)));
     else
        dump("<undef>\n");
+#endif /* DEBUGGING */
 }
 
 void
 dump_form(GV *gv)
 {
+#ifdef DEBUGGING
     SV *sv = sv_newmortal();
 
     gv_fullname3(sv, gv, Nullch);
@@ -90,23 +90,27 @@ dump_form(GV *gv)
        dump_op(CvROOT(GvFORM(gv)));
     else
        dump("<undef>\n");
+#endif /* DEBUGGING */
 }
 
 void
 dump_eval(void)
 {
-    dump_op(eval_root);
+#ifdef DEBUGGING
+    dump_op(PL_eval_root);
+#endif /* DEBUGGING */
 }
 
 void
 dump_op(OP *o)
 {
+#ifdef DEBUGGING
     dump("{\n");
     if (o->op_seq)
        PerlIO_printf(Perl_debug_log, "%-4d", o->op_seq);
     else
        PerlIO_printf(Perl_debug_log, "    ");
-    dump("TYPE = %s  ===> ", op_name[o->op_type]);
+    dump("TYPE = %s  ===> ", PL_op_name[o->op_type]);
     if (o->op_next) {
        if (o->op_seq)
            PerlIO_printf(Perl_debug_log, "%d\n", o->op_next->op_seq);
@@ -115,10 +119,10 @@ dump_op(OP *o)
     }
     else
        PerlIO_printf(Perl_debug_log, "DONE\n");
-    dumplvl++;
+    PL_dumplvl++;
     if (o->op_targ) {
        if (o->op_type == OP_NULL)
-           dump("  (was %s)\n", op_name[o->op_targ]);
+           dump("  (was %s)\n", PL_op_name[o->op_targ]);
        else
            dump("TARG = %d\n", o->op_targ);
     }
@@ -239,7 +243,7 @@ dump_op(OP *o)
            ENTER;
            SAVEFREESV(tmpsv);
            gv_fullname3(tmpsv, cGVOPo->op_gv, Nullch);
-           dump("GV = %s\n", SvPV(tmpsv, na));
+           dump("GV = %s\n", SvPV(tmpsv, PL_na));
            LEAVE;
        }
        else
@@ -296,6 +300,7 @@ dump_op(OP *o)
        break;
     case OP_PUSHRE:
     case OP_MATCH:
+    case OP_QR:
     case OP_SUBST:
        dump_pm(cPMOPo);
        break;
@@ -307,13 +312,15 @@ dump_op(OP *o)
        for (kid = cUNOPo->op_first; kid; kid = kid->op_sibling)
            dump_op(kid);
     }
-    dumplvl--;
+    PL_dumplvl--;
     dump("}\n");
+#endif /* DEBUGGING */
 }
 
 void
 dump_gv(GV *gv)
 {
+#ifdef DEBUGGING
     SV *sv;
 
     if (!gv) {
@@ -321,7 +328,7 @@ dump_gv(GV *gv)
        return;
     }
     sv = sv_newmortal();
-    dumplvl++;
+    PL_dumplvl++;
     PerlIO_printf(Perl_debug_log, "{\n");
     gv_fullname3(sv, gv, Nullch);
     dump("GV_NAME = %s", SvPVX(sv));
@@ -330,13 +337,15 @@ dump_gv(GV *gv)
        dump("-> %s", SvPVX(sv));
     }
     dump("\n");
-    dumplvl--;
+    PL_dumplvl--;
     dump("}\n");
+#endif /* DEBUGGING */
 }
 
 void
 dump_pm(PMOP *pm)
 {
+#ifdef DEBUGGING
     char ch;
 
     if (!pm) {
@@ -344,7 +353,7 @@ dump_pm(PMOP *pm)
        return;
     }
     dump("{\n");
-    dumplvl++;
+    PL_dumplvl++;
     if (pm->op_pmflags & PMf_ONCE)
        ch = '?';
     else
@@ -361,8 +370,10 @@ dump_pm(PMOP *pm)
     }
     if (pm->op_pmflags || (pm->op_pmregexp && pm->op_pmregexp->check_substr)) {
        SV *tmpsv = newSVpv("", 0);
-       if (pm->op_pmflags & PMf_USED)
+       if (pm->op_pmdynflags & PMdf_USED)
            sv_catpv(tmpsv, ",USED");
+       if (pm->op_pmdynflags & PMdf_TAINTED)
+           sv_catpv(tmpsv, ",TAINTED");
        if (pm->op_pmflags & PMf_ONCE)
            sv_catpv(tmpsv, ",ONCE");
        if (pm->op_pmregexp && pm->op_pmregexp->check_substr
@@ -381,56 +392,31 @@ dump_pm(PMOP *pm)
            sv_catpv(tmpsv, ",GLOBAL");
        if (pm->op_pmflags & PMf_CONTINUE)
            sv_catpv(tmpsv, ",CONTINUE");
+       if (pm->op_pmflags & PMf_RETAINT)
+           sv_catpv(tmpsv, ",RETAINT");
        if (pm->op_pmflags & PMf_EVAL)
            sv_catpv(tmpsv, ",EVAL");
        dump("PMFLAGS = (%s)\n", SvCUR(tmpsv) ? SvPVX(tmpsv) + 1 : "");
        SvREFCNT_dec(tmpsv);
     }
 
-    dumplvl--;
+    PL_dumplvl--;
     dump("}\n");
+#endif /* DEBUGGING */
 }
 
 
-#if !defined(I_STDARG) && !defined(I_VARARGS)
-/* VARARGS1 */
-static void dump(arg1,arg2,arg3,arg4,arg5)
-char *arg1;
-long arg2, arg3, arg4, arg5;
-{
-    I32 i;
-
-    for (i = dumplvl*4; i; i--)
-       (void)PerlIO_putc(Perl_debug_log,' ');
-    PerlIO_printf(Perl_debug_log, arg1, arg2, arg3, arg4, arg5);
-}
-
-#else
-
-#ifdef I_STDARG
-static void
+STATIC void
 dump(char *pat,...)
-#else
-/*VARARGS0*/
-static void
-dump(pat,va_alist)
-    char *pat;
-    va_dcl
-#endif
 {
+#ifdef DEBUGGING
     I32 i;
     va_list args;
 
-#ifdef I_STDARG
     va_start(args, pat);
-#else
-    va_start(args);
-#endif
-    for (i = dumplvl*4; i; i--)
+    for (i = PL_dumplvl*4; i; i--)
        (void)PerlIO_putc(Perl_debug_log,' ');
     PerlIO_vprintf(Perl_debug_log,pat,args);
     va_end(args);
+#endif /* DEBUGGING */
 }
-#endif
-
-#endif