]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools: move PCD size calculation functions to PcdClassObject
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DscBuildData.py
index 49bf5df632484a86dae652650c15af9350a1279a..06ea7b05a33c94023ffca1dd02fe4082f55a85ae 100644 (file)
@@ -635,10 +635,10 @@ class DscBuildData(PlatformBuildClassObject):
             self._SkuIds = OrderedDict()\r
             RecordList = self._RawData[MODEL_EFI_SKU_ID, self._Arch]\r
             for Record in RecordList:\r
-                if Record[0] in [None, '']:\r
+                if not Record[0]:\r
                     EdkLogger.error('build', FORMAT_INVALID, 'No Sku ID number',\r
                                     File=self.MetaFile, Line=Record[-1])\r
-                if Record[1] in [None, '']:\r
+                if not Record[1]:\r
                     EdkLogger.error('build', FORMAT_INVALID, 'No Sku ID name',\r
                                     File=self.MetaFile, Line=Record[-1])\r
                 if not Pattern.match(Record[0]) and not HexPattern.match(Record[0]):\r
@@ -663,10 +663,10 @@ class DscBuildData(PlatformBuildClassObject):
             self.DefaultStores = OrderedDict()\r
             RecordList = self._RawData[MODEL_EFI_DEFAULT_STORES, self._Arch]\r
             for Record in RecordList:\r
-                if Record[0] in [None, '']:\r
+                if not Record[0]:\r
                     EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID number',\r
                                     File=self.MetaFile, Line=Record[-1])\r
-                if Record[1] in [None, '']:\r
+                if not Record[1]:\r
                     EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID name',\r
                                     File=self.MetaFile, Line=Record[-1])\r
                 if not Pattern.match(Record[0]) and not HexPattern.match(Record[0]):\r
@@ -1347,7 +1347,7 @@ class DscBuildData(PlatformBuildClassObject):
                         nextskuid = self.SkuIdMgr.GetNextSkuId(nextskuid)\r
                     stru_pcd.SkuOverrideValues[skuid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid]) if not NoDefault else copy.deepcopy({defaultstorename: stru_pcd.DefaultValues for defaultstorename in DefaultStores} if DefaultStores else {TAB_DEFAULT_STORES_DEFAULT:stru_pcd.DefaultValues})\r
                     if not NoDefault:\r
-                        stru_pcd.ValueChain[(skuid,'')]= (nextskuid,'')\r
+                        stru_pcd.ValueChain.add(skuid,'')\r
             if stru_pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]:\r
                 for skuid in SkuIds:\r
                     nextskuid = skuid\r
@@ -1366,7 +1366,7 @@ class DscBuildData(PlatformBuildClassObject):
                     for defaultstoreid in DefaultStores:\r
                         if defaultstoreid not in stru_pcd.SkuOverrideValues[skuid]:\r
                             stru_pcd.SkuOverrideValues[skuid][defaultstoreid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid][mindefaultstorename])\r
-                            stru_pcd.ValueChain[(skuid,defaultstoreid)]= (nextskuid,mindefaultstorename)\r
+                            stru_pcd.ValueChain.add(skuid,defaultstoreid)\r
         S_pcd_set = DscBuildData.OverrideByFdfComm(S_pcd_set)\r
         Str_Pcd_Values = self.GenerateByteArrayValue(S_pcd_set)\r
         if Str_Pcd_Values:\r
@@ -1500,7 +1500,7 @@ class DscBuildData(PlatformBuildClassObject):
         def get_length(value):\r
             Value = value.strip()\r
             if len(value) > 1:\r
-                if Value.startswith('GUID') and Value.endswith(')'):\r
+                if Value.startswith(TAB_GUID) and Value.endswith(')'):\r
                     return 16\r
                 if Value.startswith('L"') and Value.endswith('"'):\r
                     return len(Value[2:-1])\r
@@ -1535,23 +1535,6 @@ class DscBuildData(PlatformBuildClassObject):
         Result = Result + '"'\r
         return Result\r
 \r
-    @staticmethod\r
-    def GetPcdMaxSize(Pcd):\r
-        if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:\r
-            return MAX_SIZE_TYPE[Pcd.DatumType]\r
-\r
-        MaxSize = int(Pcd.MaxDatumSize,10) if Pcd.MaxDatumSize else 0\r
-        if Pcd.PcdValueFromComm:\r
-            if Pcd.PcdValueFromComm.startswith("{") and Pcd.PcdValueFromComm.endswith("}"):\r
-                return max([len(Pcd.PcdValueFromComm.split(",")),MaxSize])\r
-            elif Pcd.PcdValueFromComm.startswith("\"") or Pcd.PcdValueFromComm.startswith("\'"):\r
-                return max([len(Pcd.PcdValueFromComm)-2+1,MaxSize])\r
-            elif Pcd.PcdValueFromComm.startswith("L\""):\r
-                return max([2*(len(Pcd.PcdValueFromComm)-3+1),MaxSize])\r
-            else:\r
-                return max([len(Pcd.PcdValueFromComm),MaxSize])\r
-        return MaxSize\r
-\r
     def GenerateSizeFunction(self,Pcd):\r
         CApp = "// Default Value in Dec \n"\r
         CApp = CApp + "void Cal_%s_%s_Size(UINT32 *Size){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
@@ -1634,7 +1617,7 @@ class DscBuildData(PlatformBuildClassObject):
                 while '[' in FieldName:\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("."), ArrayIndex + 1, Pcd.PcdFieldValueFromComm[FieldName_ori][1], Pcd.PcdFieldValueFromComm[FieldName_ori][2], Pcd.PcdFieldValueFromComm[FieldName_ori][0])\r
-        CApp = CApp + "  *Size = (%d > *Size ? %d : *Size); // The Pcd maxsize is %d \n" % (DscBuildData.GetPcdMaxSize(Pcd),DscBuildData.GetPcdMaxSize(Pcd),DscBuildData.GetPcdMaxSize(Pcd))\r
+        CApp = CApp + "  *Size = (%d > *Size ? %d : *Size); // The Pcd maxsize is %d \n" % (Pcd.GetPcdMaxSize(),Pcd.GetPcdMaxSize(),Pcd.GetPcdMaxSize())\r
         CApp = CApp + "}\n"\r
         return CApp\r
 \r