diff options
Diffstat (limited to 'ext/ByteLoader/byterun.c')
-rw-r--r-- | ext/ByteLoader/byterun.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/ByteLoader/byterun.c b/ext/ByteLoader/byterun.c index 3432eb326f..bdc9555335 100644 --- a/ext/ByteLoader/byterun.c +++ b/ext/ByteLoader/byterun.c @@ -47,6 +47,7 @@ bset_obj_store(pTHX_ struct byteloader_state *bstate, void *obj, I32 ix) int byterun(pTHX_ register struct byteloader_state *bstate) { + dVAR; register int insn; U32 ix; SV *specialsv_list[6]; @@ -216,7 +217,7 @@ byterun(pTHX_ register struct byteloader_state *bstate) { svindex arg; BGET_svindex(arg); - SvRV(bstate->bs_sv) = arg; + BSET_xrv(bstate->bs_sv, arg); break; } case INSN_XPV: /* 22 */ @@ -228,28 +229,28 @@ byterun(pTHX_ register struct byteloader_state *bstate) { STRLEN arg; BGET_PADOFFSET(arg); - SvCUR(bstate->bs_sv) = arg; + BSET_xpv_cur(bstate->bs_sv, arg); break; } case INSN_XPV_LEN: /* 24 */ { STRLEN arg; BGET_PADOFFSET(arg); - SvLEN(bstate->bs_sv) = arg; + BSET_xpv_len(bstate->bs_sv, arg); break; } case INSN_XIV: /* 25 */ { IV arg; BGET_IV(arg); - SvIVX(bstate->bs_sv) = arg; + BSET_xiv(bstate->bs_sv, arg); break; } case INSN_XNV: /* 26 */ { NV arg; BGET_NV(arg); - SvNVX(bstate->bs_sv) = arg; + BSET_xnv(bstate->bs_sv, arg); break; } case INSN_XLV_TARGOFF: /* 27 */ @@ -592,7 +593,7 @@ byterun(pTHX_ register struct byteloader_state *bstate) { svindex arg; BGET_svindex(arg); - *(SV**)&SvSTASH(bstate->bs_sv) = arg; + bstate->bs_sv = arg; break; } case INSN_GV_FETCHPV: /* 77 */ |