diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-12-11 21:15:06 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-12-11 21:15:06 +0000 |
commit | 703a10d08f6fbbe216ef6b2375118b8cb03bc1e8 (patch) | |
tree | cbfb633e17f3a8638ecb901b05c9e3d525d25ee6 /sv.h | |
parent | d8419e03da17b84a4daef4f24401907f1299763c (diff) | |
download | perl-703a10d08f6fbbe216ef6b2375118b8cb03bc1e8.tar.gz |
Assert that BmRARE() BmPREVIOUS() and BmUSEFUL() are only called on
valid PVBMs.
p4raw-id: //depot/perl@29521
Diffstat (limited to 'sv.h')
-rw-r--r-- | sv.h | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -1314,17 +1314,20 @@ the scalar's value cannot change unless written to. # define BmRARE(sv) \ (*({ SV *const _svi = (SV *) (sv); \ assert(SvTYPE(_svi) == SVt_PVBM); \ + assert(SvVALID(_svi)); \ &(((XPVBM*) SvANY(_svi))->xbm_rare); \ })) # define BmUSEFUL(sv) \ (*({ SV *const _svi = (SV *) (sv); \ assert(SvTYPE(_svi) == SVt_PVBM); \ + assert(SvVALID(_svi)); \ assert(!SvIOK(_svi)); \ &(((XPVBM*) SvANY(_svi))->xiv_u.xivu_i32); \ })) # define BmPREVIOUS(sv) \ (*({ SV *const _svi = (SV *) (sv); \ assert(SvTYPE(_svi) == SVt_PVBM); \ + assert(SvVALID(_svi)); \ &(((XPVBM*) SvANY(_svi))->xbm_previous); \ })) #else |