Front page | perl.perl5.porters |
Postings from November 2003
Re: warning from smoke
Thread Previous
From:
Nicholas Clark
Date:
November 22, 2003 14:58
Subject:
Re: warning from smoke
Message ID:
20031122225757.GQ11153@plum.flirble.org
On Mon, Oct 13, 2003 at 05:27:15PM +0100, Nicholas Clark wrote:
> On Sun, Oct 12, 2003 at 06:42:11PM +0200, H.Merijn Brand wrote:
> > On Sun, 12 Oct 2003 18:39:41 +0200, Rafael Garcia-Suarez
> > <rgarciasuarez@free.fr> wrote:
>
> > >That happens with COW, doesn't it ?
> > >I can't reproduce it on Linux.
> >
> > Correct. (That's why I Cc'd Nick).
>
> Thanks
>
> > Still, it's new info (I hope)
>
> I think I was aware of it before. I can re-create it (on Debian) with:
>
> LANG=fa_IR.utf8 ./perl -C16 -T lib/locale.t
>
> I've not had the tuits to track it down yet.
Finally.
It should be gone.
Nicholas Clark
Change 21774 by nicholas@entropy on 2003/11/22 21:21:22
restore_magic needs to undo COW
(while magic was off, sv_setsv is likely to have seen this SV as a
good source for COW)
Should fix the smoke failures on lib/locale.t
Affected files ...
... //depot/perl/mg.c#283 edit
Differences ...
==== //depot/perl/mg.c#283 (text) ====
@@ -2583,6 +2583,13 @@
if (SvTYPE(sv) >= SVt_PVMG && SvMAGIC(sv))
{
+#ifdef PERL_COPY_ON_WRITE
+ /* While magic was saved (and off) sv_setsv may well have seen
+ this SV as a prime candidate for COW. */
+ if (SvIsCOW(sv))
+ sv_force_normal(sv);
+#endif
+
if (mgs->mgs_flags)
SvFLAGS(sv) |= mgs->mgs_flags;
else
Thread Previous