Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 3078:baa3873eb387
don't let lazyparser read more data than it can handle
This should fix issue368.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Sun, 10 Sep 2006 19:15:08 -0300 |
parents | 5df3e5cf16bc |
children | e7fc04dc6349 |
comparison
equal
deleted
inserted
replaced
3077:ad6aecaf4eed | 3078:baa3873eb387 |
---|---|
137 | 137 |
138 def loadblock(self, blockstart, blocksize, data=None): | 138 def loadblock(self, blockstart, blocksize, data=None): |
139 if self.all: return | 139 if self.all: return |
140 if data is None: | 140 if data is None: |
141 self.dataf.seek(blockstart) | 141 self.dataf.seek(blockstart) |
142 if blockstart + blocksize > self.datasize: | |
143 # the revlog may have grown since we've started running, | |
144 # but we don't have space in self.index for more entries. | |
145 # limit blocksize so that we don't get too much data. | |
146 blocksize = self.datasize - blockstart | |
142 data = self.dataf.read(blocksize) | 147 data = self.dataf.read(blocksize) |
143 lend = len(data) / self.s | 148 lend = len(data) / self.s |
144 i = blockstart / self.s | 149 i = blockstart / self.s |
145 off = 0 | 150 off = 0 |
146 for x in xrange(lend): | 151 for x in xrange(lend): |