X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=mouse.h;h=8f543c550cdd342555fbbd344542994ab01efd61;hp=ba1c3e0b5fa4c313d08e394b89f86173e0a70182;hb=80aa5731d6763d8f38ba0fa057729af7026e6580;hpb=5132ec428048d13768f6bb012b779b991c45658e diff --git a/mouse.h b/mouse.h index ba1c3e0..8f543c5 100644 --- a/mouse.h +++ b/mouse.h @@ -59,7 +59,10 @@ bool mouse_is_class_loaded(pTHX_ SV*); #define is_an_instance_of(klass, sv) mouse_is_an_instance_of(aTHX_ gv_stashpvs(klass, GV_ADD), (sv)) -#define IsObject(sv) (SvROK(sv) && SvOBJECT(SvRV(sv))) +#define IsObject(sv) (SvROK(sv) && SvOBJECT(SvRV(sv))) +#define IsArrayRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVAV) +#define IsHashRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVHV) +#define IsCodeRef(sv) (SvROK(sv) && !SvOBJECT(SvRV(sv)) && SvTYPE(SvRV(sv)) == SVt_PVCV) #define mcall0(invocant, m) mouse_call0(aTHX_ (invocant), (m)) #define mcall1(invocant, m, arg1) mouse_call1(aTHX_ (invocant), (m), (arg1))