]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/GenPcdDb.py
BaseTools: Handle the bytes and str difference
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / GenPcdDb.py
index 2cb1745823b959d3e82a34e9e0776794ac2300a0..cbf7a39dd53470b58e738a503ce54960ddd677b6 100644 (file)
@@ -295,7 +295,7 @@ class DbItemList:
 \r
         PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
 \r
-        Buffer = ''\r
+        Buffer = bytearray()\r
         for Datas in self.RawDataList:\r
             if type(Datas) in (list, tuple):\r
                 for Data in Datas:\r
@@ -320,7 +320,7 @@ class DbExMapTblItemList (DbItemList):
         DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
 \r
     def PackData(self):\r
-        Buffer = ''\r
+        Buffer = bytearray()\r
         PackStr = "=LHH"\r
         for Datas in self.RawDataList:\r
             Buffer += pack(PackStr,\r
@@ -369,7 +369,7 @@ class DbComItemList (DbItemList):
     def PackData(self):\r
         PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
 \r
-        Buffer = ''\r
+        Buffer = bytearray()\r
         for DataList in self.RawDataList:\r
             for Data in DataList:\r
                 if type(Data) in (list, tuple):\r
@@ -390,7 +390,7 @@ class DbVariableTableItemList (DbComItemList):
 \r
     def PackData(self):\r
         PackStr = "=LLHHLHH"\r
-        Buffer = ''\r
+        Buffer = bytearray()\r
         for DataList in self.RawDataList:\r
             for Data in DataList:\r
                 Buffer += pack(PackStr,\r
@@ -451,7 +451,7 @@ class DbSkuHeadTableItemList (DbItemList):
 \r
     def PackData(self):\r
         PackStr = "=LL"\r
-        Buffer = ''\r
+        Buffer = bytearray()\r
         for Data in self.RawDataList:\r
             Buffer += pack(PackStr,\r
                            GetIntegerValue(Data[0]),\r
@@ -473,7 +473,7 @@ class DbSizeTableItemList (DbItemList):
         return length * self.ItemSize\r
     def PackData(self):\r
         PackStr = "=H"\r
-        Buffer = ''\r
+        Buffer = bytearray()\r
         for Data in self.RawDataList:\r
             Buffer += pack(PackStr,\r
                            GetIntegerValue(Data[0]))\r
@@ -853,8 +853,9 @@ def BuildExDataBase(Dict):
     Index = 0\r
     for Item in DbItemTotal:\r
         Index +=1\r
-        b = Item.PackData()\r
-        Buffer += b\r
+        packdata = Item.PackData()\r
+        for i in range(len(packdata)):\r
+            Buffer += packdata[i:i + 1]\r
         if Index == InitTableNum:\r
             if len(Buffer) % 8:\r
                 for num in range(8 - len(Buffer) % 8):\r
@@ -921,9 +922,9 @@ def CreatePcdDataBase(PcdDBData):
     totallenbuff = pack("=L", totallen)\r
     newbuffer = databasebuff[:32]\r
     for i in range(4):\r
-        newbuffer += totallenbuff[i]\r
+        newbuffer += totallenbuff[i:i+1]\r
     for i in range(36, totallen):\r
-        newbuffer += databasebuff[i]\r
+        newbuffer += databasebuff[i:i+1]\r
 \r
     return newbuffer\r
 \r
@@ -965,8 +966,8 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform, Phase):
         for skuname, skuid in DynamicPcdSet_Sku:\r
             AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer, VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdSet_Sku[(skuname, skuid)], Phase)\r
             final_data = ()\r
-            for item in PcdDbBuffer:\r
-                final_data += unpack("B", item)\r
+            for item in range(len(PcdDbBuffer)):\r
+                final_data += unpack("B", PcdDbBuffer[item:item+1])\r
             PcdDBData[(skuname, skuid)] = (PcdDbBuffer, final_data)\r
             PcdDriverAutoGenData[(skuname, skuid)] = (AdditionalAutoGenH, AdditionalAutoGenC)\r
             VarCheckTableData[(skuname, skuid)] = VarCheckTab\r
@@ -978,8 +979,8 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform, Phase):
     else:\r
         AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer, VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform, {}, Phase)\r
         final_data = ()\r
-        for item in PcdDbBuffer:\r
-            final_data += unpack("B", item)\r
+        for item in range(len(PcdDbBuffer)):\r
+            final_data += unpack("B", PcdDbBuffer[item:item + 1])\r
         PcdDBData[(TAB_DEFAULT, "0")] = (PcdDbBuffer, final_data)\r
 \r
     return AdditionalAutoGenH, AdditionalAutoGenC, CreatePcdDataBase(PcdDBData)\r