]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools:File open failed for VPD MapFile
authorFeng, Bob C <bob.c.feng@intel.com>
Wed, 16 Jan 2019 01:12:36 +0000 (09:12 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Fri, 1 Feb 2019 03:09:21 +0000 (11:09 +0800)
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>
BaseTools/Source/Python/BPDG/GenVpd.py

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