diff options
-rw-r--r-- | pym/_emerge/actions.py | 6 | ||||
-rw-r--r-- | pym/portage/eclass_cache.py | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 71a090233..087951016 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -1743,7 +1743,7 @@ def action_metadata(settings, portdb, myopts, porttrees=None): if not (dest['_mtime_'] == src['_mtime_'] and \ tree_data.eclass_db.validate_and_rewrite_cache( dest['_eclasses_'], tree_data.dest_db.validation_chf, - tree_data.dest_db.store_eclass_paths) and \ + tree_data.dest_db.store_eclass_paths) is not None and \ set(dest['_eclasses_']) == set(src['_eclasses_'])): dest = None else: @@ -1768,9 +1768,9 @@ def action_metadata(settings, portdb, myopts, porttrees=None): continue if eclasses is not None: - if not tree_data.eclass_db.validate_and_rewrite_cache( + if tree_data.eclass_db.validate_and_rewrite_cache( src['_eclasses_'], tree_data.src_db.validation_chf, - tree_data.src_db.store_eclass_paths): + tree_data.src_db.store_eclass_paths) is None: continue inherited = eclasses else: diff --git a/pym/portage/eclass_cache.py b/pym/portage/eclass_cache.py index 2f6e94770..808662bd5 100644 --- a/pym/portage/eclass_cache.py +++ b/pym/portage/eclass_cache.py @@ -133,6 +133,11 @@ class cache(object): self._eclass_locations[ys] = x def validate_and_rewrite_cache(self, ec_dict, chf_type, stores_paths): + """ + This will return an empty dict if the ec_dict parameter happens + to be empty, therefore callers must take care to distinguish + between empty dict and None return values. + """ if not isinstance(ec_dict, dict): return None our_getter = operator.attrgetter(chf_type) |