(chunk, id_hash)
| 1179 | |
| 1180 | |
| 1181 | def cached_hash(chunk, id_hash): |
| 1182 | allocation = chunk.meta["allocation"] |
| 1183 | if allocation == CH_DATA: |
| 1184 | data = chunk.data |
| 1185 | chunk_id = id_hash(data) |
| 1186 | elif allocation in (CH_HOLE, CH_ALLOC): |
| 1187 | size = chunk.meta["size"] |
| 1188 | assert size <= len(zeros) |
| 1189 | data = memoryview(zeros)[:size] |
| 1190 | try: |
| 1191 | chunk_id = zero_chunk_ids[(id_hash, size)] |
| 1192 | except KeyError: |
| 1193 | chunk_id = id_hash(data) |
| 1194 | zero_chunk_ids[(id_hash, size)] = chunk_id |
| 1195 | else: |
| 1196 | raise ValueError("unexpected allocation type") |
| 1197 | return chunk_id, data |
| 1198 | |
| 1199 | |
| 1200 | class ChunksProcessor: |
no outgoing calls
no test coverage detected