comparison paraspace/dexfile.py @ 123:78357afb4a9d

Test case for restore_dependencies()
author Thinker K.F. Li <thinker@codemud.net>
date Sat, 06 Aug 2011 19:09:15 +0800
parents 7644cb633d4b
children 8e42b2816893
comparison
equal deleted inserted replaced
122:6e4b6414789b 123:78357afb4a9d
303 bits = None 303 bits = None
304 304
305 def __init__(self, bits): 305 def __init__(self, bits):
306 self.bits = bits 306 self.bits = bits
307 pass 307 pass
308 308
309 def parse(self, parent, data, off): 309 def recompute_align(self, off):
310 mask = (1 << self.bits) - 1 310 mask = (1 << self.bits) - 1
311 padding_sz = ((off + mask) & ~mask) - off 311 padding_sz = ((off + mask) & ~mask) - off
312 return padding_sz 312 return padding_sz
313
314 def parse(self, parent, data, off):
315 return self.recompute_align(off)
313 316
314 @staticmethod 317 @staticmethod
315 def sizeof(v): 318 def sizeof(v):
316 return v 319 return v
317 320
889 'type unused size offset'.split() 892 'type unused size offset'.split()
890 pass 893 pass
891 894
892 895
893 class _DEX_MapItemBlock(composite): 896 class _DEX_MapItemBlock(composite):
897 padding = auto_align(2)
894 num = uint32 898 num = uint32
895 items = array('num', _DEX_MapItem) 899 items = array('num', _DEX_MapItem)
896 900
897 child_names = 'num items'.split() 901 child_names = 'padding num items'.split()
898 pass 902 pass
899 903
900 904
901 class _DEX_StringId(composite): 905 class _DEX_StringId(composite):
902 stringDataOff = depend_off('_DEX_StringDataItem')(uint32) 906 stringDataOff = depend_off('_DEX_StringDataItem')(uint32)