]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Involve Dec default value to calculate Maxsize
authorFeng, Bob C <bob.c.feng@intel.com>
Mon, 3 Sep 2018 01:05:53 +0000 (09:05 +0800)
committerLiming Gao <liming.gao@intel.com>
Wed, 12 Sep 2018 03:25:21 +0000 (11:25 +0800)
Involve Dec default value to calculate Maxsize for structure PCD

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
BaseTools/Source/Python/Workspace/BuildClassObject.py

index 7e96370d955024a15144b3b12059e8cf1b9219e1..b0f3cde81a2f2308a5864a16d96f02c9f939545b 100644 (file)
@@ -68,6 +68,19 @@ class PcdClassObject(object):
         self.PcdValueFromFdf = ""\r
         self.DefinitionPosition = ("","")\r
 \r
+    @staticmethod\r
+    def GetPcdMaxSizeWorker(PcdString, MaxSize):\r
+        if PcdString.startswith("{") and PcdString.endswith("}"):\r
+            return  max([len(PcdString.split(",")),MaxSize])\r
+\r
+        if PcdString.startswith("\"") or PcdString.startswith("\'"):\r
+            return  max([len(PcdString)-2+1,MaxSize])\r
+\r
+        if PcdString.startswith("L\""):\r
+            return  max([2*(len(PcdString)-3+1),MaxSize])\r
+\r
+        return max([len(PcdString),MaxSize])\r
+\r
     ## Get the maximum number of bytes\r
     def GetPcdMaxSize(self):\r
         if self.DatumType in TAB_PCD_NUMERIC_TYPES:\r
@@ -75,24 +88,11 @@ class PcdClassObject(object):
 \r
         MaxSize = int(self.MaxDatumSize, 10) if self.MaxDatumSize else 0\r
         if self.PcdValueFromFdf:\r
-            if self.PcdValueFromFdf.startswith("{") and self.PcdValueFromFdf.endswith("}"):\r
-                MaxSize =  max([len(self.PcdValueFromFdf.split(",")),MaxSize])\r
-            elif self.PcdValueFromFdf.startswith("\"") or self.PcdValueFromFdf.startswith("\'"):\r
-                MaxSize =  max([len(self.PcdValueFromFdf)-2+1,MaxSize])\r
-            elif self.PcdValueFromFdf.startswith("L\""):\r
-                MaxSize =  max([2*(len(self.PcdValueFromFdf)-3+1),MaxSize])\r
-            else:\r
-                MaxSize = max([len(self.PcdValueFromFdf),MaxSize])\r
-\r
+            MaxSize = self.GetPcdMaxSizeWorker(self.PcdValueFromFdf,MaxSize)\r
         if self.PcdValueFromComm:\r
-            if self.PcdValueFromComm.startswith("{") and self.PcdValueFromComm.endswith("}"):\r
-                return max([len(self.PcdValueFromComm.split(",")), MaxSize])\r
-            elif self.PcdValueFromComm.startswith("\"") or self.PcdValueFromComm.startswith("\'"):\r
-                return max([len(self.PcdValueFromComm)-2+1, MaxSize])\r
-            elif self.PcdValueFromComm.startswith("L\""):\r
-                return max([2*(len(self.PcdValueFromComm)-3+1), MaxSize])\r
-            else:\r
-                return max([len(self.PcdValueFromComm), MaxSize])\r
+            MaxSize = self.GetPcdMaxSizeWorker(self.PcdValueFromComm,MaxSize)\r
+        if hasattr(self, "DefaultValueFromDec"):\r
+            MaxSize = self.GetPcdMaxSizeWorker(self.DefaultValueFromDec,MaxSize)\r
         return MaxSize\r
 \r
     ## Get the number of bytes\r