summaryrefslogtreecommitdiff
path: root/mro.c
diff options
context:
space:
mode:
authorRafael Garcia-Suarez <rgs@consttype.org>2010-11-27 15:47:44 +0100
committerRafael Garcia-Suarez <rgs@consttype.org>2010-11-27 15:47:44 +0100
commita51ee39bac6a83e6d63d3e6d8941ae352ef3546f (patch)
treee3e3979d291fc69623fdb0d0b24386dade026621 /mro.c
parent4b074b7191cf70ddeff23e80e0d7a236842ebd1a (diff)
downloadperl-a51ee39bac6a83e6d63d3e6d8941ae352ef3546f.tar.gz
Fix a warning (that spotted a potential mro bug that I could not produce)
Diffstat (limited to 'mro.c')
-rw-r--r--mro.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/mro.c b/mro.c
index a5f1de0ab0..4b90e6716b 100644
--- a/mro.c
+++ b/mro.c
@@ -985,15 +985,14 @@ S_mro_gather_and_rename(pTHX_ HV * const stashes, HV * const seen_stashes,
/* If oldstash is not null, then we can use its HvENAME to look up
the isarev hash, since all its subclasses will be listed there.
- If oldstash is null, then this is an empty spot with no stash in
- it, so subclasses could be listed in isarev hashes belonging to
- any of the names, so we have to check all of them. */
- if(oldstash) {
+ If oldstash is null or is no longer in the symbol table, then
+ this is an empty spot with no stash in it, so subclasses could
+ be listed in isarev hashes belonging to any of the names, so we
+ have to check all of them. */
+ char *hvename = oldstash ? HvENAME(oldstash) : NULL;
+ if (hvename) {
fetched_isarev = TRUE;
- svp
- = hv_fetch(
- PL_isarev, HvENAME(oldstash), HvENAMELEN_get(oldstash), 0
- );
+ svp = hv_fetch(PL_isarev, hvename, HvENAMELEN_get(oldstash), 0);
if (svp) isarev = MUTABLE_HV(*svp);
}
else if(SvTYPE(namesv) == SVt_PVAV) {