summaryrefslogtreecommitdiff
path: root/mro.c
diff options
context:
space:
mode:
authorBrandon Black <blblack@gmail.com>2007-04-25 13:37:21 -0500
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-04-26 13:15:14 +0000
commitbc2cbbac0f53cbaf01b7ec8ef920f3910698f71d (patch)
tree187474d19c3335359252f621b7c222a23a2451cc /mro.c
parent47c9dd1447a52d200f008e3cc2f93e7266eb217e (diff)
downloadperl-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.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/mro.c b/mro.c
index ac872ec1e2..5c1a970428 100644
--- a/mro.c
+++ b/mro.c
@@ -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);