In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/941446f6f52eecff56982518624db4f64a5951fc?hp=e95d73140218cc53e63e359a04270e05457c786f>

- Log -----------------------------------------------------------------
commit 941446f6f52eecff56982518624db4f64a5951fc
Author: Father Chrysostomos <perlbug-follo...@perl.org>
Date:   Sat Oct 31 16:15:08 2009 +0100

    [perl #69875] Slow down split in scalar context :-)
    
    The patch to speed up split in scalar context broke Font::GlyphNames,
    because it stops scalar(@array = split) from working. The attached
    patch fixes this, and ineluctably slows it down slightly.
    
    (Patch amended by replacing the 2nd GIMME_V macro call by the gimme
    variable)
-----------------------------------------------------------------------

Summary of changes:
 pp.c         |    4 +++-
 t/op/split.t |   10 +++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/pp.c b/pp.c
index 80bb590..d0022fc 100644
--- a/pp.c
+++ b/pp.c
@@ -4894,7 +4894,7 @@ PP(pp_split)
     I32 realarray = 0;
     I32 base;
     const I32 gimme = GIMME_V;
-    const bool gimme_scalar = (GIMME_V == G_SCALAR);
+    bool gimme_scalar;
     const I32 oldsave = PL_savestack_ix;
     U32 make_mortal = SVs_TEMP;
     bool multiline = 0;
@@ -4968,6 +4968,8 @@ PP(pp_split)
        multiline = 1;
     }
 
+    gimme_scalar = gimme == G_SCALAR && !ary;
+
     if (!limit)
        limit = maxiters + 2;
     if (RX_EXTFLAGS(rx) & RXf_WHITE) {
diff --git a/t/op/split.t b/t/op/split.t
index 6b38b43..da12b3e 100644
--- a/t/op/split.t
+++ b/t/op/split.t
@@ -6,7 +6,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 250;
+plan tests => 251;
 
 $FS = ':';
 
@@ -460,3 +460,11 @@ is($cnt, scalar(@ary));
     () = split m/,/, "", BANG;
     ok(1);
 }
+
+{
+    # Bug #XXXXX
+    # 'Hybrid' scalar-and-array context
+    scalar(our @PATH = split /::/, "Font::GlyphNames");
+           # 'my' doesn't trigger the bug
+    is "@PATH", "Font GlyphNames", "hybrid scalar-and-array context";
+}

--
Perl5 Master Repository

Reply via email to