X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=sv.h;h=ca3a2dfa659a3bc9450cf96d891cf40b49d84266;hb=4a71ed0cc11f5be9a856b29b19af5c91a1bd76cb;hp=e9614e63a1e1ce2a36389fcf31f398504990dd20;hpb=83b0a0109e1eed27ea70e7f37c84621d166a32ce;p=p5sagit%2Fp5-mst-13.2.git diff --git a/sv.h b/sv.h index e9614e6..ca3a2df 100644 --- a/sv.h +++ b/sv.h @@ -84,10 +84,10 @@ struct io { ++count; \ MUTEX_UNLOCK(&svref_mutex); \ } STMT_END -# define ATOMIC_DEC_AND_TEST(res,count) \ - MUTEX_LOCK(&svref_mutex); \ - res = (--count == 0); \ - MUTEX_UNLOCK(&svref_mutex); \ +# define ATOMIC_DEC_AND_TEST(res,count) STMT_START { \ + MUTEX_LOCK(&svref_mutex); \ + res = (--count == 0); \ + MUTEX_UNLOCK(&svref_mutex); \ } STMT_END # else # define ATOMIC_INC(count) atomic_inc(&count) @@ -199,6 +199,7 @@ struct xpvnv { double xnv_nv; /* numeric value, if any */ }; +/* These structure must match the beginning of struct xpvhv in hv.h. */ struct xpvmg { char * xpv_pv; /* pointer to malloced string */ STRLEN xpv_cur; /* length of xpv_pv as a C string */ @@ -270,7 +271,7 @@ struct xpvfm { HV * xcv_stash; OP * xcv_start; OP * xcv_root; - void (*xcv_xsub)_((CV*)); + void (*xcv_xsub)_((CV* _CPERLproto)); ANY xcv_xsubany; GV * xcv_gv; GV * xcv_filegv; @@ -637,7 +638,7 @@ struct xpvio { # undef newRV_noinc # define newRV_noinc(sv) ({SV *nsv=newRV((sv)); --SvREFCNT(SvRV(nsv)); nsv;}) #else -# if defined(CRIPPLED_CC) || defined(USE_THREADS) +# if defined(CRIPPLED_CC) || defined(USE_THREADS) || defined(PERL_OBJECT) # else # undef newRV_noinc # define newRV_noinc(sv) ((Sv = newRV(sv)), --SvREFCNT(SvRV(Sv)), Sv)