From: Father Chrysostomos Date: Sun, 5 Jun 2011 02:14:33 +0000 (-0700) Subject: Make Devel::Peek::fill_mstats work on COWs X-Git-Tag: accepted/trunk/20130322.191538~3940 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4ab5bd5f1ac4d396ccef2207abef0c1e6fe14b66;p=platform%2Fupstream%2Fperl.git Make Devel::Peek::fill_mstats work on COWs --- diff --git a/ext/Devel-Peek/Peek.xs b/ext/Devel-Peek/Peek.xs index 3dcba47..5e8deb9 100644 --- a/ext/Devel-Peek/Peek.xs +++ b/ext/Devel-Peek/Peek.xs @@ -161,6 +161,7 @@ fill_mstats(SV *sv, int level) { dTHX; + if (SvIsCOW(sv)) sv_force_normal(sv); if (SvREADONLY(sv)) croak("Cannot modify a readonly value"); SvGROW(sv, sizeof(struct mstats_buffer)+1); diff --git a/ext/Devel-Peek/t/Peek.t b/ext/Devel-Peek/t/Peek.t index 5c6b315..8eedf53 100644 --- a/ext/Devel-Peek/t/Peek.t +++ b/ext/Devel-Peek/t/Peek.t @@ -770,4 +770,12 @@ do_test('ENAMEs on a stash with no NAME', ENAME = "RWOM", "KLANK" # $] > 5.012 '); +SKIP: { + skip "Not built with usemymalloc", 1 + unless $Config{usemymalloc} eq 'y'; + my $x = __PACKAGE__; + ok eval { fill_mstats($x); 1 }, 'fill_mstats on COW scalar' + or diag $@; +} + done_testing();