Reviewed-by: Jaben Carsey <[email protected]> > -----Original Message----- > From: Feng, Bob C > Sent: Sunday, September 02, 2018 6:06 PM > To: [email protected] > Cc: Gao, Liming <[email protected]>; Zhu, Yonghong > <[email protected]>; Carsey, Jaben <[email protected]>; > Feng, Bob C <[email protected]> > Subject: [Patch] BaseTools: Involve Dec default value to calculate Maxsize > Importance: High > > Involve Dec default value to calculate Maxsize for structure PCD > > Cc: Liming Gao <[email protected]> > Cc: Yonghong Zhu <[email protected]> > Cc: Jaben Carsey <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Bob Feng <[email protected]> > --- > .../Source/Python/Workspace/BuildClassObject.py | 34 +++++++++++------ > ----- > 1 file changed, 17 insertions(+), 17 deletions(-) > > diff --git a/BaseTools/Source/Python/Workspace/BuildClassObject.py > b/BaseTools/Source/Python/Workspace/BuildClassObject.py > index 88465c59ea..b2e5309a90 100644 > --- a/BaseTools/Source/Python/Workspace/BuildClassObject.py > +++ b/BaseTools/Source/Python/Workspace/BuildClassObject.py > @@ -66,35 +66,35 @@ class PcdClassObject(object): > self.DscDefaultValue = Value > self.PcdValueFromComm = "" > self.PcdValueFromFdf = "" > self.DefinitionPosition = ("","") > > + @staticmethod > + def GetPcdMaxSizeWorker(PcdString, MaxSize): > + if PcdString.startswith("{") and PcdString.endswith("}"): > + return max([len(PcdString.split(",")),MaxSize]) > + > + if PcdString.startswith("\"") or PcdString.startswith("\'"): > + return max([len(PcdString)-2+1,MaxSize]) > + > + if PcdString.startswith("L\""): > + return max([2*(len(PcdString)-3+1),MaxSize]) > + > + return max([len(PcdString),MaxSize]) > + > ## Get the maximum number of bytes > def GetPcdMaxSize(self): > if self.DatumType in TAB_PCD_NUMERIC_TYPES: > return MAX_SIZE_TYPE[self.DatumType] > > MaxSize = int(self.MaxDatumSize, 10) if self.MaxDatumSize else 0 > if self.PcdValueFromFdf: > - if self.PcdValueFromFdf.startswith("{") and > self.PcdValueFromFdf.endswith("}"): > - MaxSize = > max([len(self.PcdValueFromFdf.split(",")),MaxSize]) > - elif self.PcdValueFromFdf.startswith("\"") or > self.PcdValueFromFdf.startswith("\'"): > - MaxSize = max([len(self.PcdValueFromFdf)-2+1,MaxSize]) > - elif self.PcdValueFromFdf.startswith("L\""): > - MaxSize = max([2*(len(self.PcdValueFromFdf)-3+1),MaxSize]) > - else: > - MaxSize = max([len(self.PcdValueFromFdf),MaxSize]) > - > + MaxSize = > self.GetPcdMaxSizeWorker(self.PcdValueFromFdf,MaxSize) > if self.PcdValueFromComm: > - if self.PcdValueFromComm.startswith("{") and > self.PcdValueFromComm.endswith("}"): > - return max([len(self.PcdValueFromComm.split(",")), MaxSize]) > - elif self.PcdValueFromComm.startswith("\"") or > self.PcdValueFromComm.startswith("\'"): > - 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]) > + MaxSize = > self.GetPcdMaxSizeWorker(self.PcdValueFromComm,MaxSize) > + if hasattr(self, "DefaultValueFromDec"): > + MaxSize = > self.GetPcdMaxSizeWorker(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

