- if Pcd.DatumType == "VOID*":\r
- if Pcd.MaxDatumSize is None:\r
- Pcd.MaxDatumSize = '0'\r
- MaxSize = int(Pcd.MaxDatumSize,10)\r
- if Pcd.DefaultValue.startswith("{") and Pcd.DefaultValue.endswith("}"):\r
- MaxSize = max([len(Pcd.DefaultValue.split(",")),MaxSize])\r
- elif Pcd.DefaultValue.startswith("\"") or Pcd.DefaultValue.startswith("\'"):\r
- MaxSize = max([len(Pcd.DefaultValue)-2+1,MaxSize])\r
- elif Pcd.DefaultValue.startswith("L\""):\r
- MaxSize = max([2*(len(Pcd.DefaultValue)-3+1),MaxSize])\r
- else:\r
- MaxSize = max([len(Pcd.DefaultValue),MaxSize])\r
- Pcd.MaxDatumSize = str(MaxSize)\r
+ if Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII]]:\r
+ if Pcd.DatumType == "VOID*":\r
+ if not Pcd.MaxDatumSize:\r
+ Pcd.MaxDatumSize = '0'\r
+ CurrentSize = int(Pcd.MaxDatumSize,16) if Pcd.MaxDatumSize.upper().startswith("0X") else int(Pcd.MaxDatumSize)\r
+ OptionSize = len((StringToArray(Pcd.PcdValueFromComm)).split(","))\r
+ MaxSize = max(CurrentSize, OptionSize)\r
+ Pcd.MaxDatumSize = str(MaxSize)\r