| author | Damien Lespiau <damien.lespiau@gmail.com> | 2008-11-10 20:58:05 (GMT) |
|---|---|---|
| committer | Damien Lespiau <damien.lespiau@gmail.com> | 2008-11-10 20:58:05 (GMT) |
| commit | 951a933db820afcc78b9260c5aeae0133702e582 (patch) (side-by-side diff) | |
| tree | adbb35e607765462cc15d4bcdad67ddfd6b7ace9 /adv.py | |
| parent | d298d77207012ad68c1e14aeb6efaede109bcd44 (diff) | |
| download | adv-master.tar.gz adv-master.tar.bz2 | |
Signed-off-by: Damien Lespiau <damien.lespiau@gmail.com>
| -rwxr-xr-x | adv.py | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -200,14 +200,16 @@ class Archive(Cluster, Node): class Solver: def __init__(self, archives): self.archives = archives - - def solve_symbol(self, from_object, symbol): + self.symtab = {} + # construct the symbol -> object dict for archive in self.archives: for object in archive.objects: - if object == from_object: - continue - if object.has_symbol(symbol.name): - from_object.add_dependency(object) + for symbol in object.symbols: + self.symtab[symbol.name] = object + + def solve_symbol(self, from_object, symbol): + if self.symtab.has_key(symbol.name): + from_object.add_dependency(self.symtab[symbol.name]) def solve_object(self, object): verbose(2, "Solving %s dependencies" % object.name) |
