]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/Expression.py
BaseTools: refactor repeated RegExp when no special searching is needed.
[mirror_edk2.git] / BaseTools / Source / Python / Common / Expression.py
index 4a7cd974b1212449a135e21ba0c34b5367476e9b..9a844b0417f203fd6c26a95fe283e81a56a2f1c3 100644 (file)
@@ -899,7 +899,7 @@ class ValueExpressionEx(ValueExpression):
                         LabelDict = {}\r
                         NewPcdValueList = []\r
                         LabelOffset = 0\r
-                        for Index, Item in enumerate(PcdValueList):\r
+                        for Item in PcdValueList:\r
                             # compute byte offset of every LABEL\r
                             LabelList = _ReLabel.findall(Item)\r
                             Item = _ReLabel.sub('', Item)\r
@@ -925,7 +925,7 @@ class ValueExpressionEx(ValueExpression):
                                 except:\r
                                     LabelOffset = LabelOffset + 1\r
 \r
-                        for Index, Item in enumerate(PcdValueList):\r
+                        for Item in PcdValueList:\r
                             # for LABEL parse\r
                             Item = Item.strip()\r
                             try:\r
@@ -936,12 +936,13 @@ class ValueExpressionEx(ValueExpression):
                                 OffsetList = _ReOffset.findall(Item)\r
                             except:\r
                                 pass\r
+                            # replace each offset, except errors\r
                             for Offset in OffsetList:\r
-                                if Offset in LabelDict.keys():\r
-                                    Re = re.compile('OFFSET_OF\(%s\)' % Offset)\r
-                                    Item = Re.sub(LabelDict[Offset], Item)\r
-                                else:\r
+                                try:\r
+                                    Item = Item.replace('OFFSET_OF({})'.format(Offset),LabelDict[Offset])\r
+                                except:\r
                                     raise BadExpression('%s not defined' % Offset)\r
+\r
                             NewPcdValueList.append(Item)\r
 \r
                         AllPcdValueList = []\r