]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools: Enhance parse performance by optimize ValueExpressionEx
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / AutoGen.py
index ab178c9a4ab8170baf918cc1a722b60a16a4686e..1cf50e872fcd0f695bcdce1b2596000d5a4c367e 100644 (file)
@@ -1245,6 +1245,7 @@ class PlatformAutoGen(AutoGen):
         # get the original module/package/platform objects\r
         self.BuildDatabase = Workspace.BuildDatabase\r
         self.DscBuildDataObj = Workspace.Platform\r
+        self._GuidDict = Workspace._GuidDict\r
 \r
         # flag indicating if the makefile/C-code file has been created or not\r
         self.IsMakeFileCreated  = False\r
@@ -2463,22 +2464,9 @@ class PlatformAutoGen(AutoGen):
             if FromPcd.SkuInfoList not in [None, '', []]:\r
                 ToPcd.SkuInfoList = FromPcd.SkuInfoList\r
             # Add Flexible PCD format parse\r
-            PcdValue = ToPcd.DefaultValue\r
-            if PcdValue:\r
-                try:\r
-                    ToPcd.DefaultValue = ValueExpression(PcdValue)(True)\r
-                except WrnExpression, Value:\r
-                    ToPcd.DefaultValue = Value.result\r
-                except BadExpression, Value:\r
-                    EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %(ToPcd.TokenSpaceGuidCName, ToPcd.TokenCName, ToPcd.DefaultValue, Value),\r
-                                    File=self.MetaFile)\r
             if ToPcd.DefaultValue:\r
-                _GuidDict = {}\r
-                for Pkg in self.PackageList:\r
-                    Guids = Pkg.Guids\r
-                    _GuidDict.update(Guids)\r
                 try:\r
-                    ToPcd.DefaultValue = ValueExpressionEx(ToPcd.DefaultValue, ToPcd.DatumType, _GuidDict)(True)\r
+                    ToPcd.DefaultValue = ValueExpressionEx(ToPcd.DefaultValue, ToPcd.DatumType, self._GuidDict)(True)\r
                 except BadExpression, Value:\r
                     EdkLogger.error('Parser', FORMAT_INVALID, 'PCD [%s.%s] Value "%s", %s' %(ToPcd.TokenSpaceGuidCName, ToPcd.TokenCName, ToPcd.DefaultValue, Value),\r
                                         File=self.MetaFile)\r