Involve Dec default value to calculate Maxsize for structure PCD

Cc: Bob Feng <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <[email protected]>
---
 BaseTools/Source/Python/Workspace/BuildClassObject.py | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/BaseTools/Source/Python/Workspace/BuildClassObject.py 
b/BaseTools/Source/Python/Workspace/BuildClassObject.py
index 88465c59ea..32d202de5e 100644
--- a/BaseTools/Source/Python/Workspace/BuildClassObject.py
+++ b/BaseTools/Source/Python/Workspace/BuildClassObject.py
@@ -91,10 +91,19 @@ class PcdClassObject(object):
                 return max([len(self.PcdValueFromComm)-2+1, MaxSize])
             elif self.PcdValueFromComm.startswith("L\""):
                 return max([2*(len(self.PcdValueFromComm)-3+1), MaxSize])
             else:
                 return max([len(self.PcdValueFromComm), MaxSize])
+        if hasattr(self, "DefaultValueFromDec"):
+            if self.DefaultValueFromDec.startswith("{") and 
self.DefaultValueFromDec.endswith("}"):
+                return max([len(self.DefaultValueFromDec.split(",")), MaxSize])
+            elif self.DefaultValueFromDec.startswith("\"") or 
self.DefaultValueFromDec.startswith("\'"):
+                return max([len(self.DefaultValueFromDec)-2+1, MaxSize])
+            elif self.DefaultValueFromDec.startswith("L\""):
+                return max([2*(len(self.DefaultValueFromDec)-3+1), MaxSize])
+            else:
+                return max([len(self.DefaultValueFromDec), MaxSize])
         return MaxSize
 
     ## Get the number of bytes
     def GetPcdSize(self):
         if self.DatumType in TAB_PCD_NUMERIC_TYPES:
-- 
2.16.2.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to