Mercurial > hg > octave-lyh
diff src/symtab.h @ 12130:3229572cbe23
symbol_table::parent_classes: also add parents of parents to the list
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 22 Jan 2011 12:55:18 -0500 |
parents | f4689107dd8c |
children | d6151d774283 |
line wrap: on
line diff
--- a/src/symtab.h +++ b/src/symtab.h @@ -1866,6 +1866,19 @@ if (it != parent_map.end ()) retval = it->second; + for (std::list<std::string>::const_iterator lit = retval.begin (); + lit != retval.end (); lit++) + { + // Search for parents of parents and append them to the list. + + // FIXME -- should we worry about a circular inheritance graph? + + std::list<std::string> parents = parent_classes (*lit); + + if (! parents.empty ()) + retval.insert (retval.end (), parents.begin (), parents.end ()); + } + return retval; }