From patchwork Mon Feb 24 22:19:11 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [2,of,7] ancestors: remove unnecessary handling of 'left' From: Mads Kiilerich X-Patchwork-Id: 3744 Message-Id: To: mercurial-devel@selenic.com Date: Mon, 24 Feb 2014 23:19:11 +0100 # HG changeset patch # User Mads Kiilerich # Date 1393278133 -3600 # Mon Feb 24 22:42:13 2014 +0100 # Node ID b4a5e8ed29c32284842d7786dfbb039712fbe24f # Parent 9f00c23a26e019f70f90b0501b2b8fa587c85292 ancestors: remove unnecessary handling of 'left' If one of the initial nodes also is an ancestor then that most be the only ancestor. There is no need for additional bookkeeping. diff --git a/mercurial/ancestor.py b/mercurial/ancestor.py --- a/mercurial/ancestor.py +++ b/mercurial/ancestor.py @@ -31,7 +31,7 @@ poison = 1 << (i + 1) gca = set() - interesting = left = len(nodes) + interesting = len(nodes) nv = len(seen) - 1 while nv >= 0 and interesting: v = nv @@ -45,10 +45,8 @@ gca.add(v) sv |= poison if v in nodes: - left -= 1 - if left <= 1: - # history is linear - return set([v]) + # history is linear + return set([v]) if sv < poison: for p in pfunc(v): sp = seen[p] diff --git a/mercurial/parsers.c b/mercurial/parsers.c --- a/mercurial/parsers.c +++ b/mercurial/parsers.c @@ -1208,7 +1208,7 @@ const bitmask allseen = (1ull << revcount) - 1; const bitmask poison = 1ull << revcount; PyObject *gca = PyList_New(0); - int i, v, interesting, left; + int i, v, interesting; int maxrev = -1; long sp; bitmask *seen; @@ -1230,7 +1230,7 @@ for (i = 0; i < revcount; i++) seen[revs[i]] = 1ull << i; - interesting = left = revcount; + interesting = revcount; for (v = maxrev; v >= 0 && interesting; v--) { long sv = seen[v]; @@ -1251,11 +1251,8 @@ } sv |= poison; for (i = 0; i < revcount; i++) { - if (revs[i] == v) { - if (--left <= 1) - goto done; - break; - } + if (revs[i] == v) + goto done; } } }