diff --git a/clang/utils/hmaptool/hmaptool b/clang/utils/hmaptool/hmaptool --- a/clang/utils/hmaptool/hmaptool +++ b/clang/utils/hmaptool/hmaptool @@ -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 @@ ### -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 @@ 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 @@ 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 @@ 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 @@ # 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))