diff options
author | Rafael Garcia-Suarez <rgs@consttype.org> | 2010-11-27 15:47:44 +0100 |
---|---|---|
committer | Rafael Garcia-Suarez <rgs@consttype.org> | 2010-11-27 15:47:44 +0100 |
commit | a51ee39bac6a83e6d63d3e6d8941ae352ef3546f (patch) | |
tree | e3e3979d291fc69623fdb0d0b24386dade026621 | |
parent | 4b074b7191cf70ddeff23e80e0d7a236842ebd1a (diff) | |
download | perl-a51ee39bac6a83e6d63d3e6d8941ae352ef3546f.tar.gz |
Fix a warning (that spotted a potential mro bug that I could not produce)
-rw-r--r-- | mro.c | 15 |
1 files changed, 7 insertions, 8 deletions
@@ -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) { |