From 1bd4dc4f2854edf3035732416ec7e4adbddaf982 Mon Sep 17 00:00:00 2001 From: Nathan Lanza Date: Wed, 11 Aug 2021 18:55:01 -0400 Subject: [PATCH] [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 --- clang/utils/hmaptool/hmaptool | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/clang/utils/hmaptool/hmaptool b/clang/utils/hmaptool/hmaptool index e647cde6bc46a..7949002020489 100755 --- 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 @@ 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))