Show More
@@ -88,11 +88,9 b' class lazyparser(object):' | |||||
88 | safe_to_use = os.name != 'nt' or (not util.is_win_9x() and |
|
88 | safe_to_use = os.name != 'nt' or (not util.is_win_9x() and | |
89 | hasattr(util, 'win32api')) |
|
89 | hasattr(util, 'win32api')) | |
90 |
|
90 | |||
91 |
def __init__(self, dataf, size |
|
91 | def __init__(self, dataf, size): | |
92 | self.dataf = dataf |
|
92 | self.dataf = dataf | |
93 |
self. |
|
93 | self.s = struct.calcsize(indexformatng) | |
94 | self.s = struct.calcsize(indexformat) |
|
|||
95 | self.indexformat = indexformat |
|
|||
96 | self.datasize = size |
|
94 | self.datasize = size | |
97 | self.l = size/self.s |
|
95 | self.l = size/self.s | |
98 | self.index = [None] * self.l |
|
96 | self.index = [None] * self.l | |
@@ -100,7 +98,6 b' class lazyparser(object):' | |||||
100 | self.allmap = 0 |
|
98 | self.allmap = 0 | |
101 | self.all = 0 |
|
99 | self.all = 0 | |
102 | self.mapfind_count = 0 |
|
100 | self.mapfind_count = 0 | |
103 | self.shaoffset = shaoffset |
|
|||
104 |
|
101 | |||
105 | def loadmap(self): |
|
102 | def loadmap(self): | |
106 | """ |
|
103 | """ | |
@@ -120,7 +117,7 b' class lazyparser(object):' | |||||
120 | data = self.dataf.read(blocksize) |
|
117 | data = self.dataf.read(blocksize) | |
121 | off = 0 |
|
118 | off = 0 | |
122 | for x in xrange(256): |
|
119 | for x in xrange(256): | |
123 |
n = data[off + |
|
120 | n = data[off + ngshaoffset:off + ngshaoffset + 20] | |
124 | self.map[n] = count |
|
121 | self.map[n] = count | |
125 | count += 1 |
|
122 | count += 1 | |
126 | if count >= self.l: |
|
123 | if count >= self.l: | |
@@ -148,7 +145,7 b' class lazyparser(object):' | |||||
148 | if self.index[i + x] == None: |
|
145 | if self.index[i + x] == None: | |
149 | b = data[off : off + self.s] |
|
146 | b = data[off : off + self.s] | |
150 | self.index[i + x] = b |
|
147 | self.index[i + x] = b | |
151 |
n = b[ |
|
148 | n = b[ngshaoffset:ngshaoffset + 20] | |
152 | self.map[n] = i + x |
|
149 | self.map[n] = i + x | |
153 | off += self.s |
|
150 | off += self.s | |
154 |
|
151 | |||
@@ -187,7 +184,7 b' class lazyparser(object):' | |||||
187 | if off >= 0: |
|
184 | if off >= 0: | |
188 | i = off / self.s |
|
185 | i = off / self.s | |
189 | off = i * self.s |
|
186 | off = i * self.s | |
190 |
n = data[off + |
|
187 | n = data[off + ngshaoffset:off + ngshaoffset + 20] | |
191 | if n == node: |
|
188 | if n == node: | |
192 | self.map[n] = i + start / self.s |
|
189 | self.map[n] = i + start / self.s | |
193 | return node |
|
190 | return node | |
@@ -232,7 +229,7 b' class lazyindex(object):' | |||||
232 | def __getitem__(self, pos): |
|
229 | def __getitem__(self, pos): | |
233 | ret = self.p.index[pos] or self.load(pos) |
|
230 | ret = self.p.index[pos] or self.load(pos) | |
234 | if isinstance(ret, str): |
|
231 | if isinstance(ret, str): | |
235 |
ret = struct.unpack( |
|
232 | ret = struct.unpack(indexformatng, ret) | |
236 | return ret |
|
233 | return ret | |
237 | def __setitem__(self, pos, item): |
|
234 | def __setitem__(self, pos, item): | |
238 | self.p.index[pos] = item |
|
235 | self.p.index[pos] = item | |
@@ -262,7 +259,7 b' class lazymap(object):' | |||||
262 | self.p.loadindex(i) |
|
259 | self.p.loadindex(i) | |
263 | ret = self.p.index[i] |
|
260 | ret = self.p.index[i] | |
264 | if isinstance(ret, str): |
|
261 | if isinstance(ret, str): | |
265 |
ret = struct.unpack( |
|
262 | ret = struct.unpack(indexformatng, ret) | |
266 | yield ret[-1] |
|
263 | yield ret[-1] | |
267 | def __getitem__(self, key): |
|
264 | def __getitem__(self, key): | |
268 | try: |
|
265 | try: | |
@@ -321,7 +318,7 b' class revlogio(object):' | |||||
321 | if (lazyparser.safe_to_use and not inline and |
|
318 | if (lazyparser.safe_to_use and not inline and | |
322 | st and st.st_size > 1000000): |
|
319 | st and st.st_size > 1000000): | |
323 | # big index, let's parse it on demand |
|
320 | # big index, let's parse it on demand | |
324 |
parser = lazyparser(fp, st.st_size |
|
321 | parser = lazyparser(fp, st.st_size) | |
325 | index = lazyindex(parser) |
|
322 | index = lazyindex(parser) | |
326 | nodemap = lazymap(parser) |
|
323 | nodemap = lazymap(parser) | |
327 | e = list(index[0]) |
|
324 | e = list(index[0]) |
General Comments 0
You need to be logged in to leave comments.
Login now