diff options
author | Brandon Black <blblack@gmail.com> | 2007-04-25 13:37:21 -0500 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-04-26 13:15:14 +0000 |
commit | bc2cbbac0f53cbaf01b7ec8ef920f3910698f71d (patch) | |
tree | 187474d19c3335359252f621b7c222a23a2451cc /mro.c | |
parent | 47c9dd1447a52d200f008e3cc2f93e7266eb217e (diff) | |
download | perl-bc2cbbac0f53cbaf01b7ec8ef920f3910698f71d.tar.gz |
mro status, etc
From: "Brandon Black" <blblack@gmail.com>
Message-ID: <84621a60704251637v1f4a3f84y19b39461166e3631@mail.gmail.com>
p4raw-id: //depot/perl@31087
Diffstat (limited to 'mro.c')
-rw-r--r-- | mro.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -483,7 +483,10 @@ Perl_mro_isa_changed_in(pTHX_ HV* stash) while((iter = hv_iternext(isarev))) { SV* revkey = hv_iterkeysv(iter); HV* revstash = gv_stashsv(revkey, 0); - struct mro_meta* revmeta = HvMROMETA(revstash); + struct mro_meta* revmeta; + + if(!revstash) continue; + revmeta = HvMROMETA(revstash); SvREFCNT_dec((SV*)revmeta->mro_linear_dfs); SvREFCNT_dec((SV*)revmeta->mro_linear_c3); revmeta->mro_linear_dfs = NULL; @@ -597,7 +600,10 @@ Perl_mro_method_changed_in(pTHX_ HV *stash) while((iter = hv_iternext(isarev))) { SV* revkey = hv_iterkeysv(iter); HV* revstash = gv_stashsv(revkey, 0); - struct mro_meta* mrometa = HvMROMETA(revstash); + struct mro_meta* mrometa; + + if(!revstash) continue; + mrometa = HvMROMETA(revstash); mrometa->sub_generation++; if(mrometa->mro_nextmethod) hv_clear(mrometa->mro_nextmethod); |