]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - Magic.xs
Make sure all entries of MY_CXT.b__op_stashes are initialized
[perl/modules/Variable-Magic.git] / Magic.xs
index 8799958baade4e9af507b0bcd10c0ab7d6439431..24f8d5c97da6aa091ef6a5386c159a676b1ce803 100644 (file)
--- a/Magic.xs
+++ b/Magic.xs
@@ -269,10 +269,10 @@ STATIC I32 vmg_call_sv(pTHX_ SV *sv, I32 flags, int (*cleanup)(pTHX_ void *), vo
 #else
    ++PL_Ierror_count;
 #endif
-   } else if (!in_eval) {
-    if (!cleanup || cleanup(aTHX_ ud))
-     croak(NULL);
-   }
+  } else if (!in_eval) {
+   if (!cleanup || cleanup(aTHX_ ud))
+    croak(NULL);
+  }
  } else {
   if (old_err) {
    SvREFCNT_dec(ERRSV);
@@ -1464,9 +1464,11 @@ PROTOTYPES: ENABLE
 BOOT:
 {
  HV *stash;
+ int c;
 
  MY_CXT_INIT;
- MY_CXT.b__op_stashes[0] = NULL;
+ for (c = OPc_NULL; c < OPc_MAX; ++c)
+  MY_CXT.b__op_stashes[c] = NULL;
 #if VMG_THREADSAFE
  MUTEX_INIT(&vmg_vtable_refcount_mutex);
  MUTEX_INIT(&vmg_op_name_init_mutex);