[opt-viewer] Decode HTML bytes for Python 3

Summary:
When using Python 3, `pygments.highlight()` returns a `bytes` object, not
a `str`, causing the call to `str.replace` on the following line to fail
with a runtime exception:
`TypeError: 'str' does not support the buffer interface`. Decode the
bytes into a string in order to fix the exception.

Test Plan:
Run `opt-viewer.py` with Python 3.4, and confirm no runtime error occurs
when calling `str.replace`.

Reviewers: anemet

Reviewed By: anemet

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D36624

llvm-svn: 310741
This commit is contained in:
Brian Gesiak 2017-08-11 18:05:26 +00:00
parent 34f07f9e0e
commit fd6c89dc36
1 changed files with 4 additions and 1 deletions

View File

@ -59,7 +59,10 @@ class SourceFileRenderer:
def render_source_lines(self, stream, line_remarks):
file_text = stream.read()
html_highlighted = highlight(file_text, self.cpp_lexer, self.html_formatter)
html_highlighted = highlight(
file_text,
self.cpp_lexer,
self.html_formatter).decode('utf-8')
# Take off the header and footer, these must be
# reapplied line-wise, within the page structure