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 <[email protected]> wrote:
>
> Reviewed-by: Yonghong Zhu <[email protected]>
>
> Best Regards,
> Zhu Yonghong
>
>
> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of
> Yonghong Zhu
> Sent: Wednesday, July 25, 2018 11:41 AM
> To: [email protected]
> Cc: Gao, Liming <[email protected]>
> Subject: [edk2] [PATCH] BaseTools: Parse decimal format INF_VERSION incorrect
>
> From: Yunhua Feng <[email protected]>
>
> 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 <[email protected]>
> Cc: Yonghong Zhu <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Yunhua Feng <[email protected]>
> ---
> 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 > 0xffff or Minor > 0xffff:
> + 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
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel