summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/build/BuildReport.py
diff options
context:
space:
mode:
authorYunhua Feng <yunhuax.feng@intel.com>2018-01-27 00:28:05 +0800
committerYonghong Zhu <yonghong.zhu@intel.com>2018-01-30 22:44:59 +0800
commit35f613d96ce43c7b23cd77aab063424ec4422e0c (patch)
tree470967c42683749dcc72a3626fd78192e896c1dc /BaseTools/Source/Python/build/BuildReport.py
parentb23fc39cd3c32663a0fa5ae11676e4ad4a2dddf9 (diff)
downloadedk2-35f613d96ce43c7b23cd77aab063424ec4422e0c.tar.gz
edk2-35f613d96ce43c7b23cd77aab063424ec4422e0c.tar.bz2
edk2-35f613d96ce43c7b23cd77aab063424ec4422e0c.zip
BaseTools: Enhance parse performance by optimize ValueExpressionEx
Optimize ValueExpressionEx function to enhance meta-data file parse performance. Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/build/BuildReport.py')
-rw-r--r--BaseTools/Source/Python/build/BuildReport.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py
index f2a6e6d87e..53d0039c51 100644
--- a/BaseTools/Source/Python/build/BuildReport.py
+++ b/BaseTools/Source/Python/build/BuildReport.py
@@ -37,6 +37,7 @@ from Common.InfClassObject import gComponentType2ModuleType
from Common.BuildToolError import FILE_WRITE_FAILURE
from Common.BuildToolError import CODE_ERROR
from Common.BuildToolError import COMMAND_FAILURE
+from Common.BuildToolError import FORMAT_INVALID
from Common.LongFilePathSupport import OpenLongFilePath as open
from Common.MultipleWorkspace import MultipleWorkspace as mws
import Common.GlobalData as GlobalData
@@ -45,7 +46,7 @@ from Common.Misc import PathClass
from Common.String import NormPath
from Common.DataType import *
import collections
-from Common.Expression import ValueExpressionEx
+from Common.Expression import *
## Pattern to extract contents in EDK DXS files
gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)
@@ -955,7 +956,11 @@ class PcdReport(object):
DscDefaultValBak = DscDefaultValue
DscDefaultValue = self.FdfPcdSet.get((Pcd.TokenCName, Key), DscDefaultValue)
if DscDefaultValue != DscDefaultValBak:
- DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)
+ try:
+ DscDefaultValue = ValueExpressionEx(DscDefaultValue, Pcd.DatumType, self._GuidDict)(True)
+ except BadExpression, Value:
+ EdkLogger.error('BuildReport', FORMAT_INVALID, "PCD Value: %s, Type: %s" %(DscDefaultValue, Pcd.DatumType))
+
InfDefaultValue = None
PcdValue = DecDefaultValue