From a51ee39bac6a83e6d63d3e6d8941ae352ef3546f Mon Sep 17 00:00:00 2001 From: Rafael Garcia-Suarez Date: Sat, 27 Nov 2010 15:47:44 +0100 Subject: Fix a warning (that spotted a potential mro bug that I could not produce) --- mro.c | 15 +++++++-------- 1 file 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) { -- cgit v1.2.1