]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Fix the bug that same region print twice in the build log
authorYonghong Zhu <yonghong.zhu@intel.com>
Tue, 5 Sep 2017 07:42:23 +0000 (15:42 +0800)
committerYonghong Zhu <yonghong.zhu@intel.com>
Sat, 9 Sep 2017 02:12:20 +0000 (10:12 +0800)
This patch fixed the bug that same region print twice in the build log.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/GenFds/Fd.py

index 684b5cea88bef2aa4c976081131df64bd7b0c6ab..f330a7ed55dc0536ea7188835148395f1bb88098 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # process FD generation\r
 #\r
-#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -67,32 +67,38 @@ class FD(FDClassObject):
         GenFdsGlobalVariable.VerboseLogger('################### Gen VTF ####################')\r
         self.GenVtfFile()\r
 \r
-        TempFdBuffer = StringIO.StringIO('')\r
-        PreviousRegionStart = -1\r
-        PreviousRegionSize = 1\r
-        \r
-        for RegionObj in self.RegionList :\r
+        HasCapsuleRegion = False\r
+        for RegionObj in self.RegionList:\r
             if RegionObj.RegionType == 'CAPSULE':\r
-                continue\r
-            if RegionObj.Offset + RegionObj.Size <= PreviousRegionStart:\r
-                pass\r
-            elif RegionObj.Offset <= PreviousRegionStart or (RegionObj.Offset >=PreviousRegionStart and RegionObj.Offset < PreviousRegionStart + PreviousRegionSize):\r
-                pass\r
-            elif RegionObj.Offset > PreviousRegionStart + PreviousRegionSize:\r
-                GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))\r
-                PadRegion = Region.Region()\r
-                PadRegion.Offset = PreviousRegionStart + PreviousRegionSize\r
-                PadRegion.Size = RegionObj.Offset - PadRegion.Offset\r
-                PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
-            PreviousRegionStart = RegionObj.Offset\r
-            PreviousRegionSize = RegionObj.Size\r
-            #\r
-            # Call each region's AddToBuffer function\r
-            #\r
-            if PreviousRegionSize > self.Size:\r
-                pass\r
-            GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')\r
-            RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
+                HasCapsuleRegion = True\r
+                break\r
+        if HasCapsuleRegion:\r
+            TempFdBuffer = StringIO.StringIO('')\r
+            PreviousRegionStart = -1\r
+            PreviousRegionSize = 1\r
+\r
+            for RegionObj in self.RegionList :\r
+                if RegionObj.RegionType == 'CAPSULE':\r
+                    continue\r
+                if RegionObj.Offset + RegionObj.Size <= PreviousRegionStart:\r
+                    pass\r
+                elif RegionObj.Offset <= PreviousRegionStart or (RegionObj.Offset >=PreviousRegionStart and RegionObj.Offset < PreviousRegionStart + PreviousRegionSize):\r
+                    pass\r
+                elif RegionObj.Offset > PreviousRegionStart + PreviousRegionSize:\r
+                    GenFdsGlobalVariable.InfLogger('Padding region starting from offset 0x%X, with size 0x%X' %(PreviousRegionStart + PreviousRegionSize, RegionObj.Offset - (PreviousRegionStart + PreviousRegionSize)))\r
+                    PadRegion = Region.Region()\r
+                    PadRegion.Offset = PreviousRegionStart + PreviousRegionSize\r
+                    PadRegion.Size = RegionObj.Offset - PadRegion.Offset\r
+                    PadRegion.AddToBuffer(TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
+                PreviousRegionStart = RegionObj.Offset\r
+                PreviousRegionSize = RegionObj.Size\r
+                #\r
+                # Call each region's AddToBuffer function\r
+                #\r
+                if PreviousRegionSize > self.Size:\r
+                    pass\r
+                GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')\r
+                RegionObj.AddToBuffer (TempFdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict)\r
         \r
         FdBuffer = StringIO.StringIO('')\r
         PreviousRegionStart = -1\r