X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=sv.h;h=ab09bba30660f48e4e9e137d47aa436302319847;hb=b30ea4af1eb31dd77630f331817dfe421bf8b269;hp=f89df26bc781b5249201f54ca9392e550134a3f0;hpb=b6f4de247d2f20eb763c2db7573dedd35b276519;p=p5sagit%2Fp5-mst-13.2.git diff --git a/sv.h b/sv.h index f89df26..ab09bba 100644 --- a/sv.h +++ b/sv.h @@ -158,11 +158,11 @@ Same as SvREFCNT_inc, but can only be used if you know I is not NULL. Since we don't have to check the NULLness, it's faster and smaller. -=for apidoc Am|SV*|SvREFCNT_inc_void|SV* sv +=for apidoc Am|void|SvREFCNT_inc_void|SV* sv Same as SvREFCNT_inc, but can only be used if you don't need the return value. The macro doesn't need to return a meaningful value. -=for apidoc Am|SV*|SvREFCNT_inc_void_NN|SV* sv +=for apidoc Am|void|SvREFCNT_inc_void_NN|SV* sv Same as SvREFCNT_inc, but can only be used if you don't need the return value, and you know that I is not NULL. The macro doesn't need to return a meaningful value, or check for NULLness, so it's smaller @@ -178,12 +178,15 @@ Same as SvREFCNT_inc_simple, but can only be used if you know I is not NULL. Since we don't have to check the NULLness, it's faster and smaller. -=for apidoc Am|SV*|SvREFCNT_inc_simple_void|SV* sv +=for apidoc Am|void|SvREFCNT_inc_simple_void|SV* sv Same as SvREFCNT_inc_simple, but can only be used if you don't need the return value. The macro doesn't need to return a meaningful value. -=for apidoc Am|SV*|SvREFCNT_inc|SV* sv -Increments the reference count of the given SV. +=for apidoc Am|void|SvREFCNT_inc_simple_void_NN|SV* sv +Same as SvREFCNT_inc, but can only be used if you don't need the return +value, and you know that I is not NULL. The macro doesn't need +to return a meaningful value, or check for NULLness, so it's smaller +and faster. =for apidoc Am|void|SvREFCNT_dec|SV* sv Decrements the reference count of the given SV. @@ -240,7 +243,7 @@ perform the upgrade if necessary. See C. #endif /* These guys don't need the curly blocks */ -#define SvREFCNT_inc_simple_void(sv) if (sv) (SvREFCNT(sv)++); +#define SvREFCNT_inc_simple_void(sv) STMT_START { if (sv) SvREFCNT(sv)++; } STMT_END #define SvREFCNT_inc_simple_NN(sv) (++(SvREFCNT(sv)),(SV*)(sv)) #define SvREFCNT_inc_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) #define SvREFCNT_inc_simple_void_NN(sv) (void)(++SvREFCNT((SV*)(sv))) @@ -263,7 +266,7 @@ perform the upgrade if necessary. See C. #endif #define SVTYPEMASK 0xff -#define SvTYPE(sv) ((sv)->sv_flags & SVTYPEMASK) +#define SvTYPE(sv) (svtype)((sv)->sv_flags & SVTYPEMASK) /* Sadly there are some parts of the core that have pointers to already-freed SV heads, and rely on being able to tell that they are now free. So mark