From 0944818a1972b07b09b53a2a1e88295cd92361cf Mon Sep 17 00:00:00 2001 From: "Carsey, Jaben" Date: Thu, 29 Mar 2018 08:02:17 +0800 Subject: [PATCH] BaseTools: no need to do int() API work for it int() with base=0 will already auto determine base from preceeding 0x/0X Cc: Yonghong Zhu Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jaben Carsey Reviewed-by: Yonghong Zhu --- BaseTools/Source/Python/AutoGen/GenC.py | 5 +---- BaseTools/Source/Python/Common/Expression.py | 4 ++-- BaseTools/Source/Python/GenFds/FdfParser.py | 5 +---- BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py | 10 ++-------- 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/GenC.py b/BaseTools/Source/Python/AutoGen/GenC.py index cca6c8ab4f..4d9ea1b2a8 100644 --- a/BaseTools/Source/Python/AutoGen/GenC.py +++ b/BaseTools/Source/Python/AutoGen/GenC.py @@ -1032,10 +1032,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd): try: if Value.upper().endswith('L'): Value = Value[:-1] - if Value.upper().startswith('0X'): - ValueNumber = int (Value, 16) - else: - ValueNumber = int (Value) + ValueNumber = int (Value, 0) except: EdkLogger.error("build", AUTOGEN_ERROR, "PCD value is not valid dec or hex number for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName), diff --git a/BaseTools/Source/Python/Common/Expression.py b/BaseTools/Source/Python/Common/Expression.py index 9a844b0417..8e1a9866e1 100644 --- a/BaseTools/Source/Python/Common/Expression.py +++ b/BaseTools/Source/Python/Common/Expression.py @@ -845,7 +845,7 @@ class ValueExpressionEx(ValueExpression): if ItemSize == 0: try: - tmpValue = int(Item, 16) if Item.upper().startswith('0X') else int(Item, 0) + tmpValue = int(Item, 0) if tmpValue > 255: raise BadExpression("Byte array number %s should less than 0xFF." % Item) except BadExpression, Value: @@ -857,7 +857,7 @@ class ValueExpressionEx(ValueExpression): ItemValue = ParseFieldValue(Item)[0] if type(ItemValue) == type(''): - ItemValue = int(ItemValue, 16) if ItemValue.startswith('0x') else int(ItemValue) + ItemValue = int(ItemValue, 0) TmpValue = (ItemValue << (Size * 8)) | TmpValue Size = Size + ItemSize diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index 8a894f1528..346f4eeb03 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -1146,10 +1146,7 @@ class FdfParser: if Scope in ['UINT64', 'UINT8']: ValueNumber = 0 try: - if Value.upper().startswith('0X'): - ValueNumber = int (Value, 16) - else: - ValueNumber = int (Value) + 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: diff --git a/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py b/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py index 0c8009cb0b..0664d6a90f 100644 --- a/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py +++ b/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py @@ -110,10 +110,7 @@ def PatchBinaryFile(FileName, ValueOffset, TypeName, ValueString, MaxSize=0): ValueNumber = 1 elif ValueString == 'FALSE': ValueNumber = 0 - elif ValueString.startswith('0X'): - ValueNumber = int (ValueString, 16) - else: - ValueNumber = int (ValueString) + ValueNumber = int (ValueString, 0) if ValueNumber != 0: ValueNumber = 1 except: @@ -127,10 +124,7 @@ def PatchBinaryFile(FileName, ValueOffset, TypeName, ValueString, MaxSize=0): # Get PCD value for UINT* data type # try: - if ValueString.startswith('0X'): - ValueNumber = int (ValueString, 16) - else: - ValueNumber = int (ValueString) + ValueNumber = int (ValueString, 0) except: return PARAMETER_INVALID, "PCD Value %s is not valid dec or hex string." % (ValueString) # -- 2.39.2