SvPVX_const() - part 3 ... and const'ing Storable
[p5sagit/p5-mst-13.2.git] / ext / Devel / DProf / DProf.xs
index 10d4172..39a604d 100644 (file)
@@ -24,7 +24,7 @@ db_get_cv(pTHX_ SV *sv)
            cv = INT2PTR(CV*,SvIVX(sv));
        } else {
            if (SvPOK(sv)) {
-               cv = get_cv(SvPVX(sv), TRUE);
+               cv = get_cv(SvPVX_const(sv), TRUE);
            } else if (SvROK(sv)) {
                cv = (CV*)SvRV(sv);
            } else {
@@ -42,8 +42,8 @@ dprof_dbg_sub_notify(pTHX_ SV *Sub) {
     GV   *gv = cv ? CvGV(cv) : NULL;
     if (cv && gv) {
        warn("XS DBsub(%s::%s)\n",
-            ((GvSTASH(gv) && HvNAME(GvSTASH(gv))) ?
-             HvNAME(GvSTASH(gv)) : "(null)"),
+            ((GvSTASH(gv) && HvNAME_get(GvSTASH(gv))) ?
+             HvNAME_get(GvSTASH(gv)) : "(null)"),
             GvNAME(gv));
     } else {
        warn("XS DBsub(unknown) at %x", Sub);
@@ -371,13 +371,12 @@ prof_mark(pTHX_ opcode ptype)
 
        cv = db_get_cv(aTHX_ Sub);
        gv = CvGV(cv);
-       pname = ((GvSTASH(gv) && HvNAME(GvSTASH(gv))) 
-                ? HvNAME(GvSTASH(gv)) 
-                : (char *) "(null)");
+       pname = GvSTASH(gv) ? HvNAME_get(GvSTASH(gv)) : 0;
+       pname = pname ? pname : (char *) "(null)";
        gname = GvNAME(gv);
 
        set_cv_key(aTHX_ cv, pname, gname);
-       svp = hv_fetch(g_cv_hash, SvPVX(g_key_hash), SvCUR(g_key_hash), TRUE);
+       svp = hv_fetch(g_cv_hash, SvPVX_const(g_key_hash), SvCUR(g_key_hash), TRUE);
        if (!SvOK(*svp)) {
            sv_setiv(*svp, id = ++g_lastid);
            if (CvXSUB(cv) == XS_Devel__DProf_END)