[hmaptool] Port to python3

This is just a few trivial changes -- change the interpreter and fix a
few byte-vs-string issues.

Differential Revision: https://reviews.llvm.org/D107944
This commit is contained in:
Nathan Lanza 2021-08-11 18:55:01 -04:00
parent 241df03ce5
commit 1bd4dc4f28
1 changed files with 9 additions and 8 deletions

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from __future__ import absolute_import, division, print_function
from ctypes import ArgumentError
import json
import optparse
import os
@ -9,8 +10,8 @@ import sys
###
k_header_magic_LE = 'pamh'
k_header_magic_BE = 'hmap'
k_header_magic_LE = b'pamh'
k_header_magic_BE = b'hmap'
def hmap_hash(str):
"""hash(str) -> int
@ -43,7 +44,7 @@ class HeaderMap(object):
path,))
(version, reserved, strtable_offset, num_entries,
num_buckets, max_value_len) = struct.unpack(header_fmt, data)
num_buckets) = struct.unpack(header_fmt, data)
if version != 1:
raise SystemExit("error: %s: unknown headermap version: %r" % (
@ -83,7 +84,7 @@ class HeaderMap(object):
if len(strtable) != strtable_size:
raise SystemExit("error: %s: unable to read complete string table"%(
path,))
if strtable[-1] != '\0':
if strtable[-1] != 0:
raise SystemExit("error: %s: invalid string table in headermap" % (
path,))
@ -97,8 +98,8 @@ class HeaderMap(object):
def get_string(self, idx):
if idx >= len(self.strtable):
raise SystemExit("error: %s: invalid string index" % (
path,))
end_idx = self.strtable.index('\0', idx)
idx,))
end_idx = self.strtable.index(0, idx)
return self.strtable[idx:end_idx]
@property
@ -220,7 +221,7 @@ def action_write(name, args):
# Write out the headermap.
with open(output_path, 'wb') as f:
f.write(magic.encode())
f.write(magic)
f.write(struct.pack(header_fmt, *header))
for bucket in table:
f.write(struct.pack(bucket_fmt, *bucket))