X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Magic.xs;h=062cdb30fe595b841a61d0bdb59d1a2a3a623908;hb=800e9f939f181af9766c3a3024ac9f57b9799510;hp=6e0848128ce440659de00d1c4dcc55f97029c840;hpb=159e8ad7c747edb4a25db2f2673bbe143531f347;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/Magic.xs b/Magic.xs index 6e08481..062cdb3 100644 --- a/Magic.xs +++ b/Magic.xs @@ -124,7 +124,7 @@ STATIC SV *vmg_clone(pTHX_ SV *sv, tTHX owner) { #endif #ifndef SvREFCNT_inc_simple_void -# define SvREFCNT_inc_simple_void(sv) SvREFCNT_inc(sv) +# define SvREFCNT_inc_simple_void(sv) ((void) SvREFCNT_inc(sv)) #endif #ifndef mPUSHu @@ -359,9 +359,11 @@ STATIC opclass vmg_opclass(const OP *o) { return ((o->op_private & OPpASSIGN_BACKWARDS) ? OPc_UNOP : OPc_BINOP); if (o->op_type == OP_AELEMFAST) { +#if PERL_VERSION <= 14 if (o->op_flags & OPf_SPECIAL) return OPc_BASEOP; else +#endif #ifdef USE_ITHREADS return OPc_PADOP; #else @@ -757,7 +759,7 @@ STATIC SV *vmg_data_get(pTHX_ SV *sv, const SV *wiz) { #define vmg_data_get(S, W) vmg_data_get(aTHX_ (S), (W)) const MAGIC *mg = vmg_find(sv, wiz); return mg ? mg->mg_obj : NULL; -} +} /* ... Magic cast/dispell .................................................. */ @@ -1467,14 +1469,14 @@ CODE: Newx(t, 1, MGVTBL); Newx(w, 1, MGWIZ); - VMG_SET_CB(ST(i++), data); - cb = ST(i++); opinfo = SvOK(cb) ? SvUV(cb) : 0; w->opinfo = (U8) ((opinfo < 255) ? opinfo : 255); if (w->opinfo) vmg_op_info_init(w->opinfo); + VMG_SET_CB(ST(i++), data); + VMG_SET_SVT_CB(ST(i++), get); VMG_SET_SVT_CB(ST(i++), set); VMG_SET_SVT_CB(ST(i++), len);