From: Nicholas Clark Date: Sat, 25 Feb 2006 15:11:28 +0000 (+0000) Subject: Curiously none of the macros SvIVX, SvUVX or SvNVX are used on X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=27bd069fdd0f917015e698e36bfc41a29daa63be;p=p5sagit%2Fp5-mst-13.2.git Curiously none of the macros SvIVX, SvUVX or SvNVX are used on typeglobs. p4raw-id: //depot/perl@27325 --- diff --git a/dump.c b/dump.c index 2c6aa23..478cc17 100644 --- a/dump.c +++ b/dump.c @@ -1281,8 +1281,9 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo SvREFCNT_dec(d); return; } - if (type == SVt_IV || (type >= SVt_PVIV && type != SVt_PVAV - && type != SVt_PVHV && type != SVt_PVCV)) { + if ((type >= SVt_PVIV && type != SVt_PVAV && type != SVt_PVHV + && type != SVt_PVCV && !isGV_with_GP(sv)) + || type == SVt_IV) { if (SvIsUV(sv) #ifdef PERL_OLD_COPY_ON_WRITE || SvIsCOW(sv) @@ -1302,7 +1303,7 @@ Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bo PerlIO_putc(file, '\n'); } if ((type >= SVt_PVNV && type != SVt_PVAV && type != SVt_PVHV - && type != SVt_PVCV && type != SVt_PVFM) + && type != SVt_PVCV && type != SVt_PVFM && !isGV_with_GP(sv)) || type == SVt_NV) { STORE_NUMERIC_LOCAL_SET_STANDARD(); /* %Vg doesn't work? --jhi */ diff --git a/ext/Devel/Peek/t/Peek.t b/ext/Devel/Peek/t/Peek.t index fdf57a9..f40bc5e 100644 --- a/ext/Devel/Peek/t/Peek.t +++ b/ext/Devel/Peek/t/Peek.t @@ -306,8 +306,6 @@ do_test(17, 'SV = PVGV\\($ADDR\\) at $ADDR REFCNT = 5 FLAGS = \\(SCREAM,MULTI(?:,IN_PAD)?\\) - IV = 0 - NV = 0 NAME = "a" NAMELEN = 1 GvSTASH = $ADDR\\t"main" diff --git a/sv.h b/sv.h index c509ac6..1d62a88 100644 --- a/sv.h +++ b/sv.h @@ -1019,6 +1019,7 @@ in gv.h: */ assert(SvTYPE(_svi) != SVt_PVAV); \ assert(SvTYPE(_svi) != SVt_PVHV); \ assert(SvTYPE(_svi) != SVt_PVCV); \ + assert(!isGV_with_GP(_svi)); \ &(((XPVIV*) SvANY(_svi))->xiv_iv); \ })) # define SvUVX(sv) \ @@ -1027,6 +1028,7 @@ in gv.h: */ assert(SvTYPE(_svi) != SVt_PVAV); \ assert(SvTYPE(_svi) != SVt_PVHV); \ assert(SvTYPE(_svi) != SVt_PVCV); \ + assert(!isGV_with_GP(_svi)); \ &(((XPVUV*) SvANY(_svi))->xuv_uv); \ })) # define SvNVX(sv) \ @@ -1035,6 +1037,7 @@ in gv.h: */ assert(SvTYPE(_svi) != SVt_PVAV); \ assert(SvTYPE(_svi) != SVt_PVHV); \ assert(SvTYPE(_svi) != SVt_PVFM); \ + assert(!isGV_with_GP(_svi)); \ &(((XPVNV*) SvANY(_svi))->xnv_nv); \ })) # define SvMAGIC(sv) \