Adjust test count.
[p5sagit/p5-mst-13.2.git] / ext / Opcode / Opcode.xs
index b313999..eba1c86 100644 (file)
@@ -132,7 +132,7 @@ new_opset(pTHX_ SV *old_opset)
        opset = newSVsv(old_opset);
     }
     else {
-       opset = NEWSV(1156, opset_len);
+       opset = newSV(opset_len);
        Zero(SvPVX_const(opset), opset_len + 1, char);
        SvCUR_set(opset, opset_len);
        (void)SvPOK_only(opset);
@@ -314,6 +314,10 @@ PPCODE:
     dummy_hv = save_hash(PL_incgv);
     GvHV(PL_incgv) = (HV*)SvREFCNT_inc(GvHV(gv_HVadd(gv_fetchpv("INC",TRUE,SVt_PVHV))));
 
+    /* Invalidate ISA and method caches */
+    ++PL_sub_generation;
+    hv_clear(PL_stashcache);
+
     PUSHMARK(SP);
     perl_call_sv(codesv, GIMME|G_EVAL|G_KEEPERR); /* use callers context */
     sv_free( (SV *) dummy_hv);  /* get rid of what save_hash gave us*/
@@ -466,8 +470,7 @@ PPCODE:
        }
        else if (SvPOK(bitspec) && SvCUR(bitspec) == (STRLEN)opset_len) {
            int b, j;
-           STRLEN n_a;
-           const char * const bitmap = SvPV(bitspec,n_a);
+           const char * const bitmap = SvPV_nolen_const(bitspec);
            int myopcode = 0;
            for (b=0; b < opset_len; b++) {
                const U16 bits = bitmap[b];