diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-05-23 21:01:37 +0100 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2011-06-11 09:12:37 +0200 |
commit | 0a0c4b76b41cff6aaa3670fa19292a3e9248e69e (patch) | |
tree | 9d7bc74c9942e6fe8f67c2667522f3041ea31a02 /ext/Devel-Peek | |
parent | a672f009fb8f223715e97dfcac7fb84e4bb2904b (diff) | |
download | perl-0a0c4b76b41cff6aaa3670fa19292a3e9248e69e.tar.gz |
Perl_do_sv_dump() shouldn't show "IV" for a FBM, as it's not valid.
The memory is used for part of the FBM state.
Tidy the order of conditions in the if() determining whether the IV/UV should
be shown.
Diffstat (limited to 'ext/Devel-Peek')
-rw-r--r-- | ext/Devel-Peek/t/Peek.t | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/ext/Devel-Peek/t/Peek.t b/ext/Devel-Peek/t/Peek.t index 8eedf530b1..4fee5e72b6 100644 --- a/ext/Devel-Peek/t/Peek.t +++ b/ext/Devel-Peek/t/Peek.t @@ -778,4 +778,42 @@ SKIP: { or diag $@; } +use constant perl => 'rules'; + +unless ($Config{useithreads}) { + # These end up as copies in pads under ithreads, which rather defeats the + # the point of what we're trying to test here. + + do_test('regular string constant', perl, +'SV = PV\\($ADDR\\) at $ADDR + REFCNT = 3 + FLAGS = \\(PADMY,POK,READONLY,pPOK\\) + PV = $ADDR "rules"\\\0 + CUR = 5 + LEN = \d+ +'); + + eval 'index "", perl'; + + # FIXME - really this shouldn't say EVALED. It's a false posistive on + # 0x40000000 being used for several things, not a flag for "I'm in a string + # eval" + + do_test('string constant now an FBM', perl, +'SV = PVGV\\($ADDR\\) at $ADDR + REFCNT = 3 + FLAGS = \\(PADMY,SMG,POK,READONLY,pPOK,VALID,EVALED\\) + PV = $ADDR "rules"\\\0 + CUR = 5 + LEN = \d+ + MAGIC = $ADDR + MG_VIRTUAL = &PL_vtbl_bm + MG_TYPE = PERL_MAGIC_bm\\(B\\) + FLAGS = 0 + RARE = \d+ + PREVIOUS = 1 + USEFUL = 100 +'); +} + done_testing(); |