diff -r b9ec8ebc187a -r ad9ed9803eb6 selectors.py --- a/selectors.py Wed Sep 29 12:53:30 2010 +0200 +++ b/selectors.py Wed Sep 29 12:54:35 2010 +0200 @@ -1073,7 +1073,9 @@ for i, row in enumerate(rset): if not rset.description[i][col] in need_local_check: continue - if not self.score(req, rset, i, col): + # micro-optimisation instead of calling self.score(req, + # rset, i, col): rset may be large + if not rset.get_entity(i, col).cw_has_perm(action): return 0 score += 1 return score