X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=sv.h;h=0835ccd7f04d398a765c729c6add15e7e765b804;hb=454f1e2628e3c3cf05341675e973e8df77c9b0ae;hp=719dfe25567f24411544477e72ea0ad954b4d508;hpb=0a356b31f4fb75a04bcfe2c09a78a66691335d64;p=p5sagit%2Fp5-mst-13.2.git diff --git a/sv.h b/sv.h index 719dfe2..0835ccd 100644 --- a/sv.h +++ b/sv.h @@ -208,7 +208,7 @@ perform the upgrade if necessary. See C. #define SVTYPEMASK 0xff #define SvTYPE(sv) ((sv)->sv_flags & SVTYPEMASK) -#define SvUPGRADE(sv, mt) (void)(SvTYPE(sv) >= mt || sv_upgrade(sv, mt)) +#define SvUPGRADE(sv, mt) (SvTYPE(sv) >= (mt) || (sv_upgrade(sv, mt), 1)) #define SVs_PADSTALE 0x00000100 /* lexical has gone out of scope */ #define SVs_PADTMP 0x00000200 /* in use as tmp */ @@ -941,6 +941,7 @@ in gv.h: */ (((XPVIV*) SvANY(sv))->xiv_iv = (val)); } STMT_END #define SvNV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) == SVt_NV || SvTYPE(sv) >= SVt_PVNV); \ + assert(SvTYPE(sv) != SVt_PVAV); assert(SvTYPE(sv) != SVt_PVHV); \ (((XPVNV*)SvANY(sv))->xnv_nv = (val)); } STMT_END #define SvPV_set(sv, val) \ STMT_START { assert(SvTYPE(sv) >= SVt_PV); \