mercurial/ancestor.py
changeset 25639 7125225a5287
parent 25113 0ca8410ea345
child 25915 7ef98b38163f
--- a/mercurial/ancestor.py	Sun Sep 28 20:18:43 2014 -0700
+++ b/mercurial/ancestor.py	Wed Jun 24 12:37:55 2015 -0500
@@ -316,11 +316,14 @@
         stoprev = self._stoprev
         visit = collections.deque(revs)
 
+        see = seen.add
+        schedule = visit.append
+
         while visit:
             for parent in parentrevs(visit.popleft()):
                 if parent >= stoprev and parent not in seen:
-                    visit.append(parent)
-                    seen.add(parent)
+                    schedule(parent)
+                    see(parent)
                     yield parent
 
     def __contains__(self, target):
@@ -337,6 +340,7 @@
         stoprev = self._stoprev
         heappop = heapq.heappop
         heappush = heapq.heappush
+        see = seen.add
 
         targetseen = False
 
@@ -347,7 +351,7 @@
                 # We need to make sure we push all parents into the heap so
                 # that we leave it in a consistent state for future calls.
                 heappush(visit, -parent)
-                seen.add(parent)
+                see(parent)
                 if parent == target:
                     targetseen = True