dtoc: Decode strings for struct.unpack on python 3.x

On python 3.x struct.unpack will complain if we provide it with a
string since it expects to operate on a bytes object. In order to
satisfy this requirement, encode the string to a bytes object when
running on python 3.x.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Paul Burton 2016-09-27 16:03:57 +01:00 committed by sjg
parent 4ae6549f8e
commit c4c5f9eefb
1 changed files with 3 additions and 0 deletions

View File

@ -8,6 +8,7 @@
import os
import struct
import sys
import tempfile
import command
@ -22,6 +23,8 @@ def fdt32_to_cpu(val):
Return:
A native-endian integer value
"""
if sys.version_info > (3, 0):
val = val.encode('raw_unicode_escape')
return struct.unpack('>I', val)[0]
def EnsureCompiled(fname):