# HG changeset patch # User Pierre-Yves David # Date 1364225718 -3600 # Node ID 465a87e6a89a5b8830b6cd9b3a36c53d1cf04f35 # Parent 194f1418bc7eb548ebc8c6f56c85a4262a3a1071 [transaction] use set operation in the hook control code We use direct operator on set instead of looping by hand, This simplify the codes. diff -r 194f1418bc7e -r 465a87e6a89a server/session.py --- a/server/session.py Mon Mar 25 16:08:48 2013 +0100 +++ b/server/session.py Mon Mar 25 16:35:18 2013 +0100 @@ -309,18 +309,15 @@ """ changes = set() self.pruned_hooks_cache.clear() + categories = set(categories) if self.hooks_mode is HOOKS_DENY_ALL: enabledcats = self.enabled_hook_cats - for category in categories: - if category in enabledcats: - enabledcats.remove(category) - changes.add(category) + changes = enabledcats & categories + enabledcats -= changes # changes is small hence faster else: disabledcats = self.disabled_hook_cats - for category in categories: - if category not in disabledcats: - disabledcats.add(category) - changes.add(category) + changes = categories - disabledcats + disabledcats |= changes # changes is small hence faster return tuple(changes) def enable_hook_categories(self, *categories): @@ -331,18 +328,15 @@ """ changes = set() self.pruned_hooks_cache.clear() + categories = set(categories) if self.hooks_mode is HOOKS_DENY_ALL: enabledcats = self.enabled_hook_cats - for category in categories: - if category not in enabledcats: - enabledcats.add(category) - changes.add(category) + changes = categories - enabledcats + enabledcats |= changes # changes is small hence faster else: disabledcats = self.disabled_hook_cats - for category in categories: - if category in disabledcats: - disabledcats.remove(category) - changes.add(category) + changes = disabledcats & categories + disabledcats -= changes # changes is small hence faster return tuple(changes) def is_hook_category_activated(self, category):