X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=dump.c;h=9dc7db8a6775ff692e0727e2019a83ca240c6dd6;hb=d7558cadd708841cd632b5ecc8f461233367b84d;hp=fed067df6d36c033040548a4c5eb994f8973f8c1;hpb=83bf042f79af6208af0620b081ee65543ecfed9f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/dump.c b/dump.c index fed067d..9dc7db8 100644 --- a/dump.c +++ b/dump.c @@ -154,7 +154,7 @@ char * Perl_sv_peek(pTHX_ SV *sv) { dVAR; - SV *t = sv_newmortal(); + SV * const t = sv_newmortal(); int unref = 0; sv_setpvn(t, "", 0); @@ -406,7 +406,7 @@ sequence(pTHX_ register const OP *o) { dVAR; SV *op; - char *key; + const char *key; STRLEN len; const OP *oldop = 0; OP *l; @@ -414,14 +414,12 @@ sequence(pTHX_ register const OP *o) if (!o) return; - op = newSVuv(PTR2UV(o)); - key = SvPV(op, len); - if (hv_exists(Sequence, key, len)) - return; + if (!Sequence) + Sequence = newHV(); for (; o; o = o->op_next) { op = newSVuv(PTR2UV(o)); - key = SvPV(op, len); + key = SvPV_const(op, len); if (hv_exists(Sequence, key, len)) break; @@ -501,11 +499,11 @@ sequence_num(pTHX_ const OP *o) dVAR; SV *op, **seq; - char *key; + const char *key; STRLEN len; if (!o) return 0; op = newSVuv(PTR2UV(o)); - key = SvPV(op, len); + key = SvPV_const(op, len); seq = hv_fetch(Sequence, key, len, 0); return seq ? SvUV(*seq): 0; } @@ -1190,7 +1188,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo /* FALL THROUGH */ default: if (SvEVALED(sv)) sv_catpv(d, "EVALED,"); - if (SvIsUV(sv)) sv_catpv(d, "IsUV,"); + if (SvIsUV(sv) && !(flags & SVf_ROK)) sv_catpv(d, "IsUV,"); break; case SVt_PVBM: if (SvTAIL(sv)) sv_catpv(d, "TAIL,"); @@ -1452,7 +1450,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo U32 hash = HeHASH(he); keysv = hv_iterkeysv(he); - keypv = SvPV(keysv, len); + keypv = SvPV_const(keysv, len); elt = hv_iterval(hv, he); Perl_dump_indent(aTHX_ level+1, file, "Elt %s ", pv_display(d, keypv, len, 0, pvlim)); if (SvUTF8(keysv)) @@ -1467,7 +1465,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo break; case SVt_PVCV: if (SvPOK(sv)) - Perl_dump_indent(aTHX_ level, file, " PROTOTYPE = \"%s\"\n", SvPV_nolen(sv)); + Perl_dump_indent(aTHX_ level, file, " PROTOTYPE = \"%s\"\n", SvPV_nolen_const(sv)); /* FALL THROUGH */ case SVt_PVFM: do_hv_dump(level, file, " COMP_STASH", CvSTASH(sv)); @@ -1526,7 +1524,6 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo Perl_dump_indent(aTHX_ level, file, " HV = 0x%"UVxf"\n", PTR2UV(GvHV(sv))); Perl_dump_indent(aTHX_ level, file, " CV = 0x%"UVxf"\n", PTR2UV(GvCV(sv))); Perl_dump_indent(aTHX_ level, file, " CVGEN = 0x%"UVxf"\n", (UV)GvCVGEN(sv)); - Perl_dump_indent(aTHX_ level, file, " GPFLAGS = 0x%"UVxf"\n", (UV)GvGPFLAGS(sv)); Perl_dump_indent(aTHX_ level, file, " LINE = %"IVdf"\n", (IV)GvLINE(sv)); Perl_dump_indent(aTHX_ level, file, " FILE = \"%s\"\n", GvFILE(sv)); Perl_dump_indent(aTHX_ level, file, " FLAGS = 0x%"UVxf"\n", (UV)GvFLAGS(sv)); @@ -1620,7 +1617,7 @@ Perl_debop(pTHX_ const OP *o) if (cGVOPo_gv) { SV *sv = NEWSV(0,0); gv_fullname3(sv, cGVOPo_gv, Nullch); - PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen(sv)); + PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen_const(sv)); SvREFCNT_dec(sv); } else @@ -1640,7 +1637,7 @@ Perl_debop(pTHX_ const OP *o) } else sv = Nullsv; if (sv) - PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen(sv)); + PerlIO_printf(Perl_debug_log, "(%s)", SvPV_nolen_const(sv)); else PerlIO_printf(Perl_debug_log, "[%"UVuf"]", (UV)o->op_targ); } @@ -1683,7 +1680,7 @@ S_debprof(pTHX_ const OP *o) if (CopSTASH_eq(PL_curcop, PL_debstash) && !DEBUG_J_TEST_) return; if (!PL_profiledata) - Newz(000, PL_profiledata, MAXO, U32); + Newxz(PL_profiledata, MAXO, U32); ++PL_profiledata[o->op_type]; }