Re: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION incorrect

2018-07-25 Thread Zhu, Yonghong
Good, the patch is not push, I can update it.

Best Regards,
Zhu Yonghong


-Original Message-
From: Carsey, Jaben 
Sent: Thursday, July 26, 2018 9:24 AM
To: Zhu, Yonghong 
Cc: edk2-devel@lists.01.org; Gao, Liming 
Subject: Re: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION 
incorrect

Can we change the code to allocate fewer strings?

'0x' + '{0:04x}{1:04x}'.format(...)

Could be just:

'0x{0:04x}{1:04x}'.format(...

Jaben

> On Jul 25, 2018, at 5:41 PM, Zhu, Yonghong  wrote:
> 
> Reviewed-by: Yonghong Zhu 
> 
> Best Regards,
> Zhu Yonghong
> 
> 
> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of 
> Yonghong Zhu
> Sent: Wednesday, July 25, 2018 11:41 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming 
> Subject: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION 
> incorrect
> 
> From: Yunhua Feng 
> 
> hex number 0x00010019, the major number is 0001, the minor number is 0019.
> the decimal number 1.25, the major number is 1, and the minor number 
> is 25
> 
> Fix https://bugzilla.tianocore.org/show_bug.cgi?id=921
> 
> Cc: Liming Gao 
> Cc: Yonghong Zhu 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Yunhua Feng 
> ---
> BaseTools/Source/Python/Workspace/MetaFileParser.py | 9 ++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py 
> b/BaseTools/Source/Python/Workspace/MetaFileParser.py
> index fbfc182c8b..250cbf79a9 100644
> --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
> +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
> @@ -374,13 +374,16 @@ class MetaFileParser(object):
> if Name == 'INF_VERSION':
> if hexVersionPattern.match(Value):
> self._Version = int(Value, 0)
> elif decVersionPattern.match(Value):
> ValueList = Value.split('.')
> -Major = '%04o' % int(ValueList[0], 0)
> -Minor = '%04o' % int(ValueList[1], 0)
> -self._Version = int('0x' + Major + Minor, 0)
> +Major = int(ValueList[0], 0)
> +Minor = int(ValueList[1], 0)
> +if Major > 0x or Minor > 0x:
> +EdkLogger.error('Parser', FORMAT_INVALID, "Invalid 
> version number",
> +ExtraData=self._CurrentLine, 
> File=self.MetaFile, Line=self._LineIndex + 1)
> +self._Version = int('0x' + 
> + '{0:04x}{1:04x}'.format(Major, Minor), 0)
> else:
> EdkLogger.error('Parser', FORMAT_INVALID, "Invalid version 
> number",
> ExtraData=self._CurrentLine, 
> File=self.MetaFile, Line=self._LineIndex + 1)
> 
> if isinstance(self, InfParser) and self._Version < 0x00010005:
> --
> 2.12.2.windows.2
> 
> ___
> 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
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION incorrect

2018-07-25 Thread Carsey, Jaben
Can we change the code to allocate fewer strings?

'0x' + '{0:04x}{1:04x}'.format(...)

Could be just:

'0x{0:04x}{1:04x}'.format(...

Jaben

> On Jul 25, 2018, at 5:41 PM, Zhu, Yonghong  wrote:
> 
> Reviewed-by: Yonghong Zhu  
> 
> Best Regards,
> Zhu Yonghong
> 
> 
> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of 
> Yonghong Zhu
> Sent: Wednesday, July 25, 2018 11:41 AM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming 
> Subject: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION incorrect
> 
> From: Yunhua Feng 
> 
> hex number 0x00010019, the major number is 0001, the minor number is 0019.
> the decimal number 1.25, the major number is 1, and the minor number is 25
> 
> Fix https://bugzilla.tianocore.org/show_bug.cgi?id=921
> 
> Cc: Liming Gao 
> Cc: Yonghong Zhu 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Yunhua Feng 
> ---
> BaseTools/Source/Python/Workspace/MetaFileParser.py | 9 ++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py 
> b/BaseTools/Source/Python/Workspace/MetaFileParser.py
> index fbfc182c8b..250cbf79a9 100644
> --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
> +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
> @@ -374,13 +374,16 @@ class MetaFileParser(object):
> if Name == 'INF_VERSION':
> if hexVersionPattern.match(Value):
> self._Version = int(Value, 0)
> elif decVersionPattern.match(Value):
> ValueList = Value.split('.')
> -Major = '%04o' % int(ValueList[0], 0)
> -Minor = '%04o' % int(ValueList[1], 0)
> -self._Version = int('0x' + Major + Minor, 0)
> +Major = int(ValueList[0], 0)
> +Minor = int(ValueList[1], 0)
> +if Major > 0x or Minor > 0x:
> +EdkLogger.error('Parser', FORMAT_INVALID, "Invalid 
> version number",
> +ExtraData=self._CurrentLine, 
> File=self.MetaFile, Line=self._LineIndex + 1)
> +self._Version = int('0x' + 
> + '{0:04x}{1:04x}'.format(Major, Minor), 0)
> else:
> EdkLogger.error('Parser', FORMAT_INVALID, "Invalid version 
> number",
> ExtraData=self._CurrentLine, 
> File=self.MetaFile, Line=self._LineIndex + 1)
> 
> if isinstance(self, InfParser) and self._Version < 0x00010005:
> --
> 2.12.2.windows.2
> 
> ___
> 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
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION incorrect

2018-07-25 Thread Zhu, Yonghong
Reviewed-by: Yonghong Zhu  

Best Regards,
Zhu Yonghong


-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Yonghong 
Zhu
Sent: Wednesday, July 25, 2018 11:41 AM
To: edk2-devel@lists.01.org
Cc: Gao, Liming 
Subject: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION incorrect

From: Yunhua Feng 

hex number 0x00010019, the major number is 0001, the minor number is 0019.
the decimal number 1.25, the major number is 1, and the minor number is 25

Fix https://bugzilla.tianocore.org/show_bug.cgi?id=921

Cc: Liming Gao 
Cc: Yonghong Zhu 
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yunhua Feng 
---
 BaseTools/Source/Python/Workspace/MetaFileParser.py | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py 
b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index fbfc182c8b..250cbf79a9 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -374,13 +374,16 @@ class MetaFileParser(object):
 if Name == 'INF_VERSION':
 if hexVersionPattern.match(Value):
 self._Version = int(Value, 0)
 elif decVersionPattern.match(Value):
 ValueList = Value.split('.')
-Major = '%04o' % int(ValueList[0], 0)
-Minor = '%04o' % int(ValueList[1], 0)
-self._Version = int('0x' + Major + Minor, 0)
+Major = int(ValueList[0], 0)
+Minor = int(ValueList[1], 0)
+if Major > 0x or Minor > 0x:
+EdkLogger.error('Parser', FORMAT_INVALID, "Invalid version 
number",
+ExtraData=self._CurrentLine, 
File=self.MetaFile, Line=self._LineIndex + 1)
+self._Version = int('0x' + 
+ '{0:04x}{1:04x}'.format(Major, Minor), 0)
 else:
 EdkLogger.error('Parser', FORMAT_INVALID, "Invalid version 
number",
 ExtraData=self._CurrentLine, 
File=self.MetaFile, Line=self._LineIndex + 1)
 
 if isinstance(self, InfParser) and self._Version < 0x00010005:
--
2.12.2.windows.2

___
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