]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - Magic.xs
Fix the B stashes cache cloning, and really use it for blessing op objects
[perl/modules/Variable-Magic.git] / Magic.xs
index 35500ef3878005b633c6d625eed53718e3f814d6..9772cd7fbf60ff9b6bd5da55f183a82540984fe4 100644 (file)
--- a/Magic.xs
+++ b/Magic.xs
@@ -646,7 +646,7 @@ STATIC SV *vmg_op_info(pTHX_ unsigned int opinfo) {
   case VMG_OP_INFO_OBJECT: {
    dMY_CXT;
    return sv_bless(sv_2mortal(newRV_noinc(newSViv(PTR2IV(PL_op)))),
-                           gv_stashpv(vmg_opclassnames[vmg_opclass(PL_op)], 1));
+                   MY_CXT.b__op_stashes[vmg_opclass(PL_op)]);
   }
   default:
    break;
@@ -914,8 +914,7 @@ STATIC I32 vmg_svt_val(pTHX_ IV action, SV *sv) {
    default:
     continue;
   }
-  if (mg->mg_private < SIG_MIN || mg->mg_private > SIG_MAX)
-   continue;
+  if (mg->mg_private < SIG_MIN || mg->mg_private > SIG_MAX) continue;
   w = SV2MGWIZ(mg->mg_ptr);
   switch (w->uvar) {
    case 0:
@@ -1248,7 +1247,7 @@ CODE:
   MY_CXT.wizards     = hv;
   for (c = 0; c < OPc_MAX; ++c) {
    MY_CXT.b__op_stashes[c] = (had_b__op_stash & (((U32) 1) << c))
-                              ? gv_stashpv("B::OP", 1) : NULL;
+                              ? gv_stashpv(vmg_opclassnames[c], 1) : NULL;
   }
  }