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 <spr...@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 <spr...@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