Show More
@@ -286,42 +286,54 b' def _fm0decodemeta(data):' | |||||
286 | _fm1metapairsize = _calcsize('BB') |
|
286 | _fm1metapairsize = _calcsize('BB') | |
287 |
|
287 | |||
288 | def _fm1readmarkers(data, off=0): |
|
288 | def _fm1readmarkers(data, off=0): | |
|
289 | # make some global constants local for performance | |||
|
290 | noneflag = _fm1parentnone | |||
|
291 | sha2flag = usingsha256 | |||
|
292 | sha1size = _fm1nodesha1size | |||
|
293 | sha2size = _fm1nodesha256size | |||
|
294 | sha1fmt = _fm1nodesha1 | |||
|
295 | sha2fmt = _fm1nodesha256 | |||
|
296 | metasize = _fm1metapairsize | |||
|
297 | metafmt = _fm1metapair | |||
|
298 | fsize = _fm1fsize | |||
|
299 | unpack = _unpack | |||
|
300 | ||||
289 | # Loop on markers |
|
301 | # Loop on markers | |
290 | stop = len(data) - _fm1fsize |
|
302 | stop = len(data) - _fm1fsize | |
291 | ufixed = util.unpacker(_fm1fixed) |
|
303 | ufixed = util.unpacker(_fm1fixed) | |
292 | while off <= stop: |
|
304 | while off <= stop: | |
293 | # read fixed part |
|
305 | # read fixed part | |
294 |
o1 = off + |
|
306 | o1 = off + fsize | |
295 | t, secs, tz, flags, numsuc, numpar, nummeta, prec = ufixed(data[off:o1]) |
|
307 | t, secs, tz, flags, numsuc, numpar, nummeta, prec = ufixed(data[off:o1]) | |
296 |
|
308 | |||
297 |
if flags & |
|
309 | if flags & sha2flag: | |
298 | # read 0 or more successors |
|
310 | # read 0 or more successors | |
299 |
o2 = o1 + |
|
311 | o2 = o1 + sha2size * numsuc | |
300 |
sucs = |
|
312 | sucs = unpack(sha2fmt * numsuc, data[o1:o2]) | |
301 |
|
313 | |||
302 | # read parents |
|
314 | # read parents | |
303 |
if numpar == |
|
315 | if numpar == noneflag: | |
304 | o3 = o2 |
|
316 | o3 = o2 | |
305 | parents = None |
|
317 | parents = None | |
306 | else: |
|
318 | else: | |
307 |
o3 = o2 + |
|
319 | o3 = o2 + sha2size * numpar | |
308 |
parents = |
|
320 | parents = unpack(sha2fmt * numpar, data[o2:o3]) | |
309 | else: |
|
321 | else: | |
310 | # read 0 or more successors |
|
322 | # read 0 or more successors | |
311 |
o2 = o1 + |
|
323 | o2 = o1 + sha1size * numsuc | |
312 |
sucs = |
|
324 | sucs = unpack(sha1fmt * numsuc, data[o1:o2]) | |
313 |
|
325 | |||
314 | # read parents |
|
326 | # read parents | |
315 |
if numpar == |
|
327 | if numpar == noneflag: | |
316 | o3 = o2 |
|
328 | o3 = o2 | |
317 | parents = None |
|
329 | parents = None | |
318 | else: |
|
330 | else: | |
319 |
o3 = o2 + |
|
331 | o3 = o2 + sha1size * numpar | |
320 |
parents = |
|
332 | parents = unpack(sha1fmt * numpar, data[o2:o3]) | |
321 |
|
333 | |||
322 | # read metadata |
|
334 | # read metadata | |
323 |
off = o3 + |
|
335 | off = o3 + metasize * nummeta | |
324 |
metapairsize = |
|
336 | metapairsize = unpack('>' + (metafmt * nummeta), data[o3:off]) | |
325 | metadata = [] |
|
337 | metadata = [] | |
326 | for idx in xrange(0, len(metapairsize), 2): |
|
338 | for idx in xrange(0, len(metapairsize), 2): | |
327 | o1 = off + metapairsize[idx] |
|
339 | o1 = off + metapairsize[idx] |
General Comments 0
You need to be logged in to leave comments.
Login now