develooper 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


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About