'Returns addresses that contain expressions that contain a variable with the hash of `h`.'

def addrs_for_hash(self, h):

    if (h not in self._hash_mapping):
        return
    self._mark_updated_mapping(self._hash_mapping, h)
    to_discard = set()
    for e in self._hash_mapping[h]:
        try:
            if (h == hash(self[e].object)):
                (yield e)
            else:
                to_discard.add(e)
        except KeyError:
            to_discard.add(e)
    self._hash_mapping[h] -= to_discard
