Refine code.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10799 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
sfu5 2010-08-16 01:11:49 +00:00
parent 11fa4298d6
commit 6efe946118
1 changed files with 8 additions and 44 deletions

View File

@ -14,18 +14,6 @@
#include "BaseLibInternals.h" #include "BaseLibInternals.h"
#define QUOTIENT_MAX_UINTN_DIVIDED_BY_10 ((~((UINTN) 0)) / 10U)
#define REMAINDER_MAX_UINTN_DIVIDED_BY_10 ((~((UINTN) 0)) % 10U)
#define QUOTIENT_MAX_UINTN_DIVIDED_BY_16 ((~((UINTN) 0)) / 16U)
#define REMAINDER_MAX_UINTN_DIVIDED_BY_16 ((~((UINTN) 0)) % 16U)
#define QUOTIENT_MAX_UINT64_DIVIDED_BY_10 ((~((UINT64) 0)) / 10U)
#define REMAINDER_MAX_UINT64_DIVIDED_BY_10 ((~((UINT64) 0)) % 10U)
#define QUOTIENT_MAX_UINT64_DIVIDED_BY_16 ((~((UINT64) 0)) / 16U)
#define REMAINDER_MAX_UINT64_DIVIDED_BY_16 ((~((UINT64) 0)) % 16U)
/** /**
Copies one Null-terminated Unicode string to another Null-terminated Unicode Copies one Null-terminated Unicode string to another Null-terminated Unicode
@ -682,10 +670,7 @@ StrDecimalToUintn (
// If the number represented by String overflows according // If the number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINTN_DIVIDED_BY_10) || ASSERT (Result <= ((((UINTN) ~0) - (*String - L'0')) / 10));
((Result == QUOTIENT_MAX_UINTN_DIVIDED_BY_10) &&
(*String - L'0') <= REMAINDER_MAX_UINTN_DIVIDED_BY_10)
);
Result = Result * 10 + (*String - L'0'); Result = Result * 10 + (*String - L'0');
String++; String++;
@ -764,10 +749,7 @@ StrDecimalToUint64 (
// If the number represented by String overflows according // If the number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINT64_DIVIDED_BY_10) || ASSERT (Result <= DivU64x32 (((UINT64) ~0) - (*String - L'0') , 10));
((Result == QUOTIENT_MAX_UINT64_DIVIDED_BY_10) &&
(*String - L'0') <= REMAINDER_MAX_UINT64_DIVIDED_BY_10)
);
Result = MultU64x32 (Result, 10) + (*String - L'0'); Result = MultU64x32 (Result, 10) + (*String - L'0');
String++; String++;
@ -856,10 +838,7 @@ StrHexToUintn (
// If the Hex Number represented by String overflows according // If the Hex Number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINTN_DIVIDED_BY_16) || ASSERT (Result <= ((((UINTN) ~0) - InternalHexCharToUintn (*String)) >> 4));
((Result == QUOTIENT_MAX_UINTN_DIVIDED_BY_16) &&
(InternalHexCharToUintn (*String) <= REMAINDER_MAX_UINTN_DIVIDED_BY_16))
);
Result = (Result << 4) + InternalHexCharToUintn (*String); Result = (Result << 4) + InternalHexCharToUintn (*String);
String++; String++;
@ -950,10 +929,7 @@ StrHexToUint64 (
// If the Hex Number represented by String overflows according // If the Hex Number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINT64_DIVIDED_BY_16)|| ASSERT (Result <= RShiftU64 (((UINT64) ~0) - InternalHexCharToUintn (*String) , 4));
((Result == QUOTIENT_MAX_UINT64_DIVIDED_BY_16) &&
(InternalHexCharToUintn (*String) <= REMAINDER_MAX_UINT64_DIVIDED_BY_16))
);
Result = LShiftU64 (Result, 4); Result = LShiftU64 (Result, 4);
Result = Result + InternalHexCharToUintn (*String); Result = Result + InternalHexCharToUintn (*String);
@ -1717,10 +1693,7 @@ AsciiStrDecimalToUintn (
// If the number represented by String overflows according // If the number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINTN_DIVIDED_BY_10) || ASSERT (Result <= ((((UINTN) ~0) - (*String - L'0')) / 10));
((Result == QUOTIENT_MAX_UINTN_DIVIDED_BY_10) &&
(*String - '0') <= REMAINDER_MAX_UINTN_DIVIDED_BY_10)
);
Result = Result * 10 + (*String - '0'); Result = Result * 10 + (*String - '0');
String++; String++;
@ -1794,10 +1767,7 @@ AsciiStrDecimalToUint64 (
// If the number represented by String overflows according // If the number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINT64_DIVIDED_BY_10) || ASSERT (Result <= DivU64x32 (((UINT64) ~0) - (*String - L'0') , 10));
((Result == QUOTIENT_MAX_UINT64_DIVIDED_BY_10) &&
(*String - '0') <= REMAINDER_MAX_UINT64_DIVIDED_BY_10)
);
Result = MultU64x32 (Result, 10) + (*String - '0'); Result = MultU64x32 (Result, 10) + (*String - '0');
String++; String++;
@ -1885,10 +1855,7 @@ AsciiStrHexToUintn (
// If the Hex Number represented by String overflows according // If the Hex Number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINTN_DIVIDED_BY_16) || ASSERT (Result <= ((((UINTN) ~0) - InternalHexCharToUintn (*String)) >> 4));
((Result == QUOTIENT_MAX_UINTN_DIVIDED_BY_16) &&
(InternalAsciiHexCharToUintn (*String) <= REMAINDER_MAX_UINTN_DIVIDED_BY_16))
);
Result = (Result << 4) + InternalAsciiHexCharToUintn (*String); Result = (Result << 4) + InternalAsciiHexCharToUintn (*String);
String++; String++;
@ -1980,10 +1947,7 @@ AsciiStrHexToUint64 (
// If the Hex Number represented by String overflows according // If the Hex Number represented by String overflows according
// to the range defined by UINTN, then ASSERT(). // to the range defined by UINTN, then ASSERT().
// //
ASSERT ((Result < QUOTIENT_MAX_UINT64_DIVIDED_BY_16) || ASSERT (Result <= RShiftU64 (((UINT64) ~0) - InternalHexCharToUintn (*String) , 4));
((Result == QUOTIENT_MAX_UINT64_DIVIDED_BY_16) &&
(InternalAsciiHexCharToUintn (*String) <= REMAINDER_MAX_UINT64_DIVIDED_BY_16))
);
Result = LShiftU64 (Result, 4); Result = LShiftU64 (Result, 4);
Result = Result + InternalAsciiHexCharToUintn (*String); Result = Result + InternalAsciiHexCharToUintn (*String);