diff options
-rw-r--r-- | dump.c | 7 | ||||
-rw-r--r-- | ext/Devel/Peek/t/Peek.t | 2 | ||||
-rw-r--r-- | sv.h | 3 |
3 files changed, 7 insertions, 5 deletions
@@ -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 fdf57a9e89..f40bc5e075 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" @@ -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) \ |