Patchwork D6028: branchmap: prevent reading the file twice through different iterators

login
register
mail settings
Submitter phabricator
Date Feb. 26, 2019, 2:26 p.m.
Message ID <differential-rev-PHID-DREV-ug36g525d6rgobchxxvb-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/38939/
State Superseded
Headers show

Comments

phabricator - Feb. 26, 2019, 2:26 p.m.
pulkit created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Otherwise, test-static-http.t breaks.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6028

AFFECTED FILES
  mercurial/branchmap.py

CHANGE DETAILS




To: pulkit, #hg-reviewers
Cc: mercurial-devel
phabricator - Feb. 27, 2019, 9:52 a.m.
lothiraldan added subscribers: yuja, lothiraldan.
lothiraldan accepted this revision.
lothiraldan added a comment.


  Queued thanks, the test now pass both locally and on gcc112. @yuja nice catch!

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6028

To: pulkit, #hg-reviewers, lothiraldan
Cc: lothiraldan, yuja, mercurial-devel

Patch

diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py
--- a/mercurial/branchmap.py
+++ b/mercurial/branchmap.py
@@ -179,7 +179,7 @@ 
             if not bcache.validfor(repo):
                 # invalidate the cache
                 raise ValueError(r'tip differs')
-            bcache.load(repo, f)
+            bcache.load(repo, lineiter)
         except (IOError, OSError):
             return None
 
@@ -198,10 +198,10 @@ 
 
         return bcache
 
-    def load(self, repo, f):
-        """ fully loads the branchcache by reading from the file f """
+    def load(self, repo, lineiter):
+        """ fully loads the branchcache by reading from the file using the line
+        iterator passed"""
         cl = repo.changelog
-        lineiter = iter(f)
         for line in lineiter:
             line = line.rstrip('\n')
             if not line: