On 29 February 2016 at 17:53, Leif Lindholm <[email protected]> wrote:
> On Mon, Feb 29, 2016 at 04:36:00PM +0800, Haojian Zhuang wrote:
>> 在 02/27/2016 04:42 AM, Leif Lindholm 写道:
>> >On Fri, Feb 26, 2016 at 05:34:50PM +0800, Haojian Zhuang wrote:
>> >>Since there's percentage calcution, multiply on 32bit variable
>> >>will cause overflow. So fix the variables as 64bit.
>> >
>> >So, this is not technically what it does - it changes the variables to
>> >be native integer size, meaning this does not fix anything on AArch32.
>> >
>> >Given that the existing code already populates one of these by calling
>> >AsciiStrHexToUint64, it would seem the correct fix would be to follow
>> >the commit message and actually change them to UINT64.
>>
>> mNumDataBytes = AsciiStrHexToUnit64 (NumBytesString);
>> Although AsciiStrHexToUnit64 () is used, the value is still stored as 32-bit
>> long. Since mNumDataBytes is declared as UINT32.
>>
>> I don't agree that it doesn't fix on AArch32. UINT64 is also supported
>> in AArch32. For example, unsigned long long int is 64-bit long on AArch32,
>> and we could do 64-bit calculation on AArch32.
>
> Yes, UINT64 is also supported on AArch32 - but the patch turns the
> variables into UINTN, not UINT64. UINTN is 32-bit on AArch32.
>

Oh, yes. I'll fix it with a second version. Thanks for clarify it.

Regards
Haojian
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to