From: Carsey, Jaben Date: Fri, 27 Apr 2018 22:32:15 +0000 (+0800) Subject: BaseTools: FdfParser - update to remove duplicate constant value X-Git-Tag: edk2-stable201903~1782 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=bff74750;p=mirror_edk2.git BaseTools: FdfParser - update to remove duplicate constant value PCD size by type is shared so this change both removes duplication and makes the function work for all numeric PCD types. Cc: Liming Gao Cc: Yonghong Zhu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index 49ed4041a2..223b453e7e 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -1134,21 +1134,20 @@ class FdfParser: @staticmethod def __Verify(Name, Value, Scope): - if Scope in [TAB_UINT64, TAB_UINT8]: - ValueNumber = 0 - try: - ValueNumber = int (Value, 0) - except: - EdkLogger.error("FdfParser", FORMAT_INVALID, "The value is not valid dec or hex number for %s." % Name) - if ValueNumber < 0: - EdkLogger.error("FdfParser", FORMAT_INVALID, "The value can't be set to negative value for %s." % Name) - if Scope == TAB_UINT64: - if ValueNumber >= 0x10000000000000000: - EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name) - if Scope == TAB_UINT8: - if ValueNumber >= 0x100: - EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name) - return True + # value verification only applies to numeric values. + if scope not in TAB_PCD_NUMERIC_TYPES: + return + + ValueNumber = 0 + try: + ValueNumber = int(Value, 0) + except: + EdkLogger.error("FdfParser", FORMAT_INVALID, "The value is not valid dec or hex number for %s." % Name) + if ValueNumber < 0: + EdkLogger.error("FdfParser", FORMAT_INVALID, "The value can't be set to negative value for %s." % Name) + if ValueNumber > MAX_VAL_TYPE[Scope]: + EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name) + return True ## __UndoToken() method #