mercurial/bookmarks.py
changeset 17917 12178f07de97
parent 17916 ed225834b372
child 17918 2eb5f4d1c235
--- a/mercurial/bookmarks.py	Wed Oct 24 17:26:40 2012 +0200
+++ b/mercurial/bookmarks.py	Wed Oct 24 17:55:21 2012 +0200
@@ -263,11 +263,8 @@
         while len(validdests) != plen:
             plen = len(validdests)
             succs = set(c.node() for c in validdests)
-            for c in validdests:
-                if c.mutable():
-                    # obsolescence marker does not apply to public changeset
-                    succs.update(obsolete.allsuccessors(repo.obsstore,
-                                                        [c.node()]))
+            mutable = [c.node() for c in validdests if c.mutable()]
+            succs.update(obsolete.allsuccessors(repo.obsstore, mutable))
             known = (n for n in succs if n in nm)
             validdests = set(repo.set('%ln::', known))
         validdests.remove(old)