Author: Lukas Diekmann <lukas.diekm...@uni-duesseldorf.de> Branch: set-strategies Changeset: r49221:79858af1738c Date: 2011-10-11 14:45 +0200 http://bitbucket.org/pypy/pypy/changeset/79858af1738c/
Log: using a for loop is much simpler here diff --git a/pypy/objspace/std/setobject.py b/pypy/objspace/std/setobject.py --- a/pypy/objspace/std/setobject.py +++ b/pypy/objspace/std/setobject.py @@ -391,20 +391,11 @@ def _difference_wrapped(self, w_set, w_other): d_new = self.get_empty_dict() - # XXX why not just: - # for obj in self.unerase(w_set.sstorage): - # w_item = self.wrap(obj) - # ... - w_iter = self.space.iter(w_set) - while True: - try: - w_item = self.space.next(w_iter) - if not w_other.has_key(w_item): - d_new[w_item] = None - except OperationError, e: - if not e.match(self.space, self.space.w_StopIteration): - raise - break; + for obj in self.unerase(w_set.sstorage): + w_item = self.wrap(obj) + if not w_other.has_key(w_item): + d_new[w_item] = None + strategy = self.space.fromcache(ObjectSetStrategy) return strategy.erase(d_new) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit