def fix_header(self):
"""
Repairs the header values.
"""
# Update magic
self.header.magic = self.header._MAGIC
# Update system_data_size
system_raw = self.system.dumps()
self.header.system_data_size = len(system_raw)
# Update user_data_size
user_raw = self._user_raw
self.header.user_data_size = len(user_raw)
# Update crc32
header_raw = self.header.dumps(False)
checksum = 0
checksum = crc32(header_raw, checksum)
checksum = crc32(system_raw, checksum)
checksum = crc32(user_raw, checksum)
# Convert the checksum into 32-bit unsigned integer (for Python 2/3 compatibility)
self.header.crc32 = (checksum & 0xffffffff)
评论列表
文章目录