summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BaseTools/Source/Python/Common/Expression.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/BaseTools/Source/Python/Common/Expression.py b/BaseTools/Source/Python/Common/Expression.py
index 09240de697..9a844b0417 100644
--- a/BaseTools/Source/Python/Common/Expression.py
+++ b/BaseTools/Source/Python/Common/Expression.py
@@ -936,12 +936,13 @@ class ValueExpressionEx(ValueExpression):
OffsetList = _ReOffset.findall(Item)
except:
pass
+ # replace each offset, except errors
for Offset in OffsetList:
- if Offset in LabelDict.keys():
- Re = re.compile('OFFSET_OF\(%s\)' % Offset)
- Item = Re.sub(LabelDict[Offset], Item)
- else:
+ try:
+ Item = Item.replace('OFFSET_OF({})'.format(Offset),LabelDict[Offset])
+ except:
raise BadExpression('%s not defined' % Offset)
+
NewPcdValueList.append(Item)
AllPcdValueList = []