X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=BaseTools%2FSource%2FPython%2FGenFds%2FRegion.py;h=3b7e30ec85925b1478adf978e88131d92c9aa833;hp=9d632b6321e2daef8d546f04293d0393c36509ce;hb=86379ac48ba17c71d4623c57099b064b15118e21;hpb=0d1f5b2b5dc3c1cf381be0a1ec8f960dc6029a93 diff --git a/BaseTools/Source/Python/GenFds/Region.py b/BaseTools/Source/Python/GenFds/Region.py index 9d632b6321..3b7e30ec85 100644 --- a/BaseTools/Source/Python/GenFds/Region.py +++ b/BaseTools/Source/Python/GenFds/Region.py @@ -17,7 +17,7 @@ # from struct import * from GenFdsGlobalVariable import GenFdsGlobalVariable -import StringIO +from io import BytesIO import string from CommonDataClass.FdfClass import RegionClassObject import Common.LongFilePathOs as os @@ -127,7 +127,7 @@ class Region(RegionClassObject): if self.FvAddress % FvAlignValue != 0: EdkLogger.error("GenFds", GENFDS_ERROR, "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName, FvObj.FvAlignment)) - FvBuffer = StringIO.StringIO('') + FvBuffer = BytesIO('') FvBaseAddress = '0x%X' % self.FvAddress BlockSize = None BlockNum = None @@ -135,7 +135,8 @@ class Region(RegionClassObject): if Flag: continue - if FvBuffer.len > Size: + FvBufferLen = len(FvBuffer.getvalue()) + if FvBufferLen > Size: FvBuffer.close() EdkLogger.error("GenFds", GENFDS_ERROR, "Size of FV (%s) is larger than Region Size 0x%X specified." % (RegionData, Size)) @@ -144,8 +145,8 @@ class Region(RegionClassObject): # Buffer.write(FvBuffer.getvalue()) FvBuffer.close() - FvOffset = FvOffset + FvBuffer.len - Size = Size - FvBuffer.len + FvOffset = FvOffset + FvBufferLen + Size = Size - FvBufferLen continue else: EdkLogger.error("GenFds", GENFDS_ERROR, "FV (%s) is NOT described in FDF file!" % (RegionData))