]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools: Remove the redundant __FLEXIBLE_SIZE from PcdValueInit.c
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DscBuildData.py
index d29b9bf13dbaa862a208f4518c680e5452238be4..fc1e773417de26039e7840da58f1fa93312dd5cc 100644 (file)
@@ -1876,6 +1876,7 @@ class DscBuildData(PlatformBuildClassObject):
                     while '[' in FieldName and not Pcd.IsArray():\r
                         FieldName = FieldName.rsplit('[', 1)[0]\r
                         CApp = CApp + '  __FLEXIBLE_SIZE(*Size, %s, %s, %d); // From %s Line %d Value %s\n' % (Pcd.DatumType, FieldName.strip("."), Array_Index + 1, FieldList[FieldName_ori][1], FieldList[FieldName_ori][2], FieldList[FieldName_ori][0])\r
+        flexisbale_size_statement_cache = set()\r
         for skuname in Pcd.SkuOverrideValues:\r
             if skuname == TAB_COMMON:\r
                 continue\r
@@ -1888,6 +1889,10 @@ class DscBuildData(PlatformBuildClassObject):
                         if not FieldList:\r
                             continue\r
                         for FieldName in FieldList:\r
+                            fieldinfo = tuple(FieldList[FieldName])\r
+                            if fieldinfo in flexisbale_size_statement_cache:\r
+                                continue\r
+                            flexisbale_size_statement_cache.add(fieldinfo)\r
                             FieldName = "." + FieldName\r
                             IsArray = _IsFieldValueAnArray(FieldList[FieldName.strip(".")][0])\r
                             if IsArray and not (FieldList[FieldName.strip(".")][0].startswith('{GUID') and FieldList[FieldName.strip(".")][0].endswith('}')):\r