summaryrefslogtreecommitdiff
path: root/mg.c
diff options
context:
space:
mode:
authorBrandon Black <blblack@gmail.com>2007-04-17 08:14:36 -0500
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-04-19 14:48:20 +0000
commite1a479c5e0c08fb10925261f03573261c69ca0dc (patch)
tree09088fd1ef489ff5660300a532f799144ff7ae6a /mg.c
parent0a311364e00e9bf5b4fcb140ade49b02e46833dd (diff)
downloadperl-e1a479c5e0c08fb10925261f03573261c69ca0dc.tar.gz
Re: new C3 MRO patch
From: "Brandon Black" <blblack@gmail.com> Message-ID: <84621a60704171114k29b0460el5b08ce5185d55ed5@mail.gmail.com> p4raw-id: //depot/perl@30980
Diffstat (limited to 'mg.c')
-rw-r--r--mg.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/mg.c b/mg.c
index 1aaf0ac53a..ddaf2b39f0 100644
--- a/mg.c
+++ b/mg.c
@@ -1530,8 +1530,18 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
{
dVAR;
PERL_UNUSED_ARG(sv);
- PERL_UNUSED_ARG(mg);
- PL_sub_generation++;
+
+ /* The first case occurs via setisa,
+ the second via setisa_elem, which
+ calls this same magic */
+ mro_isa_changed_in(
+ GvSTASH(
+ SvTYPE(mg->mg_obj) == SVt_PVGV
+ ? (GV*)mg->mg_obj
+ : (GV*)SvMAGIC(mg->mg_obj)->mg_obj
+ )
+ );
+
return 0;
}
@@ -1541,7 +1551,6 @@ Perl_magic_setamagic(pTHX_ SV *sv, MAGIC *mg)
dVAR;
PERL_UNUSED_ARG(sv);
PERL_UNUSED_ARG(mg);
- /* HV_badAMAGIC_on(Sv_STASH(sv)); */
PL_amagic_generation++;
return 0;