[edk2] [Patch] BaseTools: Fix bug for --pcd VOID* type when no max size is specified

Yonghong Zhu posted 1 patch 6 years, 1 month ago
Failed in applying to current master (apply log)
BaseTools/Source/Python/Workspace/DscBuildData.py | 13 -------------
1 file changed, 13 deletions(-)
[edk2] [Patch] BaseTools: Fix bug for --pcd VOID* type when no max size is specified
Posted by Yonghong Zhu 6 years, 1 month ago
when VOID* type non-structure pcd used in --pcd, and its max size is not
specified in DSC or its value is hex value, build break due to the code
int(Pcd.MaxDatumSize,10).
Now this patch remove this code, because tool will calculate the size
info in later phase.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/Workspace/DscBuildData.py | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 517385a..6e30b50 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -1252,23 +1252,10 @@ class DscBuildData(PlatformBuildClassObject):
                             SkuInfo.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
                         else:
                             SkuInfo.HiiDefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
                             for defaultstore in SkuInfo.DefaultStoreDict:
                                 SkuInfo.DefaultStoreDict[defaultstore] = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
-                    if Pcd.DatumType == "VOID*":
-                        if Pcd.MaxDatumSize is None:
-                            Pcd.MaxDatumSize = '0'
-                        MaxSize = int(Pcd.MaxDatumSize,10)
-                        if Pcd.DefaultValue.startswith("{") and Pcd.DefaultValue.endswith("}"):
-                            MaxSize = max([len(Pcd.DefaultValue.split(",")),MaxSize])
-                        elif Pcd.DefaultValue.startswith("\"") or Pcd.DefaultValue.startswith("\'"):
-                            MaxSize = max([len(Pcd.DefaultValue)-2+1,MaxSize])
-                        elif Pcd.DefaultValue.startswith("L\""):
-                            MaxSize = max([2*(len(Pcd.DefaultValue)-3+1),MaxSize])
-                        else:
-                            MaxSize = max([len(Pcd.DefaultValue),MaxSize])
-                        Pcd.MaxDatumSize = str(MaxSize)
             else:
                 PcdInDec = self.DecPcds.get((Name,Guid))
                 if PcdInDec:
                     PcdInDec.PcdValueFromComm = NoFiledValues[(Guid,Name)][0]
                     if PcdInDec.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],
-- 
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] BaseTools: Fix bug for --pcd VOID* type when no max size is specified
Posted by Gao, Liming 6 years, 1 month ago
Reviewed-by: Liming Gao <liming.gao@intel.com>

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Yonghong Zhu
> Sent: Tuesday, March 20, 2018 4:23 PM
> To: edk2-devel@lists.01.org
> Subject: [edk2] [Patch] BaseTools: Fix bug for --pcd VOID* type when no max size is specified
> 
> when VOID* type non-structure pcd used in --pcd, and its max size is not
> specified in DSC or its value is hex value, build break due to the code
> int(Pcd.MaxDatumSize,10).
> Now this patch remove this code, because tool will calculate the size
> info in later phase.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Source/Python/Workspace/DscBuildData.py | 13 -------------
>  1 file changed, 13 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
> index 517385a..6e30b50 100644
> --- a/BaseTools/Source/Python/Workspace/DscBuildData.py
> +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
> @@ -1252,23 +1252,10 @@ class DscBuildData(PlatformBuildClassObject):
>                              SkuInfo.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
>                          else:
>                              SkuInfo.HiiDefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
>                              for defaultstore in SkuInfo.DefaultStoreDict:
>                                  SkuInfo.DefaultStoreDict[defaultstore] =
> NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
> -                    if Pcd.DatumType == "VOID*":
> -                        if Pcd.MaxDatumSize is None:
> -                            Pcd.MaxDatumSize = '0'
> -                        MaxSize = int(Pcd.MaxDatumSize,10)
> -                        if Pcd.DefaultValue.startswith("{") and Pcd.DefaultValue.endswith("}"):
> -                            MaxSize = max([len(Pcd.DefaultValue.split(",")),MaxSize])
> -                        elif Pcd.DefaultValue.startswith("\"") or Pcd.DefaultValue.startswith("\'"):
> -                            MaxSize = max([len(Pcd.DefaultValue)-2+1,MaxSize])
> -                        elif Pcd.DefaultValue.startswith("L\""):
> -                            MaxSize = max([2*(len(Pcd.DefaultValue)-3+1),MaxSize])
> -                        else:
> -                            MaxSize = max([len(Pcd.DefaultValue),MaxSize])
> -                        Pcd.MaxDatumSize = str(MaxSize)
>              else:
>                  PcdInDec = self.DecPcds.get((Name,Guid))
>                  if PcdInDec:
>                      PcdInDec.PcdValueFromComm = NoFiledValues[(Guid,Name)][0]
>                      if PcdInDec.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],
> --
> 2.6.1.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel