BaseTools:File open failed for VPD MapFile

correct open MapFile support python2 and python3

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
This commit is contained in:
Feng, Bob C 2019-01-16 09:12:36 +08:00
parent 62cb98c254
commit f935bdd270
1 changed files with 7 additions and 3 deletions

View File

@ -651,7 +651,7 @@ class GenVPD :
EdkLogger.error("BPDG", BuildToolError.FILE_OPEN_FAILURE, "File open failed for %s" % self.VpdFileName, None)
try :
fMapFile = open(MapFileName, "w", 0)
fMapFile = open(MapFileName, "w")
except:
# Open failed
EdkLogger.error("BPDG", BuildToolError.FILE_OPEN_FAILURE, "File open failed for %s" % self.MapFileName, None)
@ -675,8 +675,12 @@ class GenVPD :
# Write Vpd binary file
fStringIO.seek (eachPcd.PcdBinOffset)
if isinstance(eachPcd.PcdValue, list):
ValueList = [chr(Item) for Item in eachPcd.PcdValue]
fStringIO.write(''.join(ValueList))
for i in range(len(eachPcd.PcdValue)):
Value = eachPcd.PcdValue[i:i + 1]
if isinstance(bytes(Value), str):
fStringIO.write(chr(Value[0]))
else:
fStringIO.write(bytes(Value))
else:
fStringIO.write (eachPcd.PcdValue)