X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xs-src%2FMouseTypeConstraints.xs;h=1001fbdf6573374e2cdeee7fd5a42c455dfb3482;hb=6e1e48894362f20aeb63ccc0e1b963c7e1d7cf81;hp=5ad33898d3a51ae4a07c1daaf3134ad8d15883e3;hpb=f3e4c7ebdc35a752e69f6031121b5cab1630b09a;p=gitmo%2FMouse.git diff --git a/xs-src/MouseTypeConstraints.xs b/xs-src/MouseTypeConstraints.xs index 5ad3389..1001fbd 100644 --- a/xs-src/MouseTypeConstraints.xs +++ b/xs-src/MouseTypeConstraints.xs @@ -4,12 +4,6 @@ #include "mouse.h" -#if PERL_BCDVERSION >= 0x5008005 -#define LooksLikeNumber(sv) looks_like_number(sv) -#else -#define LooksLikeNumber(sv) ( SvPOKp(sv) ? looks_like_number(sv) : (I32)SvNIOKp(sv) ) -#endif - #ifndef SvRXOK #define SvRXOK(sv) (SvROK(sv) && SvMAGICAL(SvRV(sv)) && mg_find(SvRV(sv), PERL_MAGIC_qr)) #endif @@ -392,7 +386,7 @@ mouse_lookup_isa(pTHX_ HV* const instance_stash, const char* const klass_pv){ #define find_method_pvn(a, b, c) mouse_stash_find_method(aTHX_ a, b, c) #define find_method_pvs(a, b) mouse_stash_find_method(aTHX_ a, STR_WITH_LEN(b)) -static inline GV* +STATIC_INLINE GV* mouse_stash_find_method(pTHX_ HV* const stash, const char* const name, I32 const namelen){ GV** const gvp = (GV**)hv_fetch(stash, name, namelen, FALSE); if(gvp && isGV(*gvp) && GvCV(*gvp)){ /* shortcut */ @@ -553,13 +547,15 @@ XS(XS_Mouse_constraint_check) { dVAR; dXSARGS; MAGIC* const mg = (MAGIC*)XSANY.any_ptr; + SV* sv; if(items < 1){ croak("Too few arguments for type constraint check functions"); } - SvGETMAGIC( ST(0) ); - ST(0) = boolSV( CALL_FPTR((check_fptr_t)mg->mg_ptr)(aTHX_ mg->mg_obj, ST(0)) ); + sv = ST(0); + SvGETMAGIC(sv); + ST(0) = boolSV( CALL_FPTR((check_fptr_t)mg->mg_ptr)(aTHX_ mg->mg_obj, sv) ); XSRETURN(1); }