develooper Front page | perl.perl5.changes | Postings from November 2010

[perl.git] branch blead, updated. v5.13.7-139-g3349954

From:
Father Chrysostomos
Date:
November 27, 2010 13:18
Subject:
[perl.git] branch blead, updated. v5.13.7-139-g3349954
Message ID:
E1PMS9e-0002SA-7w@camel.ams6.corp.booking.com
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/3349954c325d8917b11f4bf86c2b1c66d2c8ecaf?hp=75f5d3312d21b538131a8f964451f5ab0e11b75b>

- Log -----------------------------------------------------------------
commit 3349954c325d8917b11f4bf86c2b1c66d2c8ecaf
Author: Father Chrysostomos <sprout@cpan.org>
Date:   Sat Nov 27 13:02:49 2010 -0800

    Suppress test warning added by 04698ff6

M	t/op/hash.t

commit 3e1892cc8d6022664f01f9119761911b28090cf1
Author: Father Chrysostomos <sprout@cpan.org>
Date:   Sat Nov 27 13:05:16 2010 -0800

    Make *ISA assignment slightly faster
    
    Since we already know the array is magical and we already
    have a pointer to the magic half the time, we can call
    Perl_magic_clearisa directly.

M	sv.c
-----------------------------------------------------------------------

Summary of changes:
 sv.c        |    8 ++++++--
 t/op/hash.t |    2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/sv.c b/sv.c
index 5199268..92634e1 100644
--- a/sv.c
+++ b/sv.c
@@ -3842,14 +3842,18 @@ S_glob_assign_ref(pTHX_ SV *const dstr, SV *const sstr)
 		    av_push((AV *)mg->mg_obj,SvREFCNT_inc_simple_NN(dstr));
 	    }
 	    else
+	    {
 		sv_magic(
 		 sref, omg ? omg->mg_obj : dstr, PERL_MAGIC_isa, NULL, 0
 		);
+		mg = mg_find(sref, PERL_MAGIC_isa);
+	    }
 	    /* Since the *ISA assignment could have affected more than
 	       one stash, don’t call mro_isa_changed_in directly, but let
-	       magic_setisa do it for us, as it already has the logic for
+	       magic_clearisa do it for us, as it already has the logic for
 	       dealing with globs vs arrays of globs. */
-	    SvSETMAGIC(sref);
+	    assert(mg);
+	    Perl_magic_clearisa(aTHX_ NULL, mg);
 	}
 	break;
     }
diff --git a/t/op/hash.t b/t/op/hash.t
index fe8a856..278bea7 100644
--- a/t/op/hash.t
+++ b/t/op/hash.t
@@ -142,7 +142,7 @@ is($destroyed, 1, 'Timely hash destruction with lvalue keys');
     sub FETCH { $key = $_[1] }
     package main;
     tie my %h, "bar";
-    $h{\'foo'};
+    () = $h{\'foo'};
     is ref $key, SCALAR =>
      'hash keys are not stringified during compilation';
 }

--
Perl5 Master Repository



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