]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Common/RangeExpression.py
BaseTools/Build: Fix the range expression evaluation error.
[mirror_edk2.git] / BaseTools / Source / Python / Common / RangeExpression.py
index 5da4a476f4fab1fc6d3a5efee94e490ac20a8db5..b6c929fd885b1a4802e419a64701f6b5b8f0958e 100644 (file)
@@ -263,28 +263,28 @@ class RangeExpression(object):
         rangeContainer = RangeContainer()\r
         for range1 in rangeContainer1.pop():\r
             for range2 in rangeContainer2.pop():\r
-                if range1.start >= range2.start:\r
-                    start = range1.start\r
-                    end = range1.end\r
-                    range1.start = range2.start\r
-                    range1.end = range2.end\r
-                    range2.start = start\r
-                    range2.end = end\r
+                start1 = range1.start\r
+                end1 = range1.end\r
+                start2 = range2.start\r
+                end2 = range2.end\r
+                if start1 >= start2:\r
+                    start1, start2 = start2, start1\r
+                    end1, end2 = end2, end1\r
                 if range1.empty:\r
                     rangeid = str(uuid.uuid1())\r
                     rangeContainer.push(RangeObject(0, 0, True))\r
-                if range1.end < range2.start:\r
+                if end1 < start2:\r
                     rangeid = str(uuid.uuid1())\r
                     rangeContainer.push(RangeObject(0, 0, True))\r
-                elif range1.end == range2.start:\r
+                elif end1 == start2:\r
                     rangeid = str(uuid.uuid1())\r
-                    rangeContainer.push(RangeObject(range1.end, range1.end))\r
-                elif range1.end <= range2.end and range1.end > range2.start:\r
+                    rangeContainer.push(RangeObject(end1, end1))\r
+                elif end1 <= end2 and end1 > start2:\r
                     rangeid = str(uuid.uuid1())\r
-                    rangeContainer.push(RangeObject(range2.start, range1.end))\r
-                elif range1.end >= range2.end:\r
+                    rangeContainer.push(RangeObject(start2, end1))\r
+                elif end1 >= end2:\r
                     rangeid = str(uuid.uuid1())\r
-                    rangeContainer.push(RangeObject(range2.start, range2.end))\r
+                    rangeContainer.push(RangeObject(start2, end2))\r
         \r
         self.operanddict[rangeid] = rangeContainer\r
 #        rangeContainer.dump()\r