Value, and returns Buffer. Value is repeated every 16-bits in for Length\r
bytes of Buffer.\r
\r
- If Buffer is NULL and Length > 0, then ASSERT().\r
+ If Length > 0 and Buffer is NULL and Length > 0, then ASSERT().\r
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().\r
If Buffer is not aligned on a 16-bit boundary, then ASSERT().\r
If Length is not aligned on a 16-bit boundary, then ASSERT().\r
IN UINT16 Value\r
)\r
{\r
- ASSERT (!(Buffer == NULL && Length > 0));\r
- ASSERT (Length <= MAX_ADDRESS - (UINTN)Buffer + 1);\r
+ if (Length == 0) {\r
+ return Buffer;\r
+ }\r
+\r
+ ASSERT (Buffer != NULL);\r
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));\r
ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);\r
ASSERT ((Length & (sizeof (Value) - 1)) == 0);\r
\r
- if ((Length /= sizeof (Value)) == 0) {\r
- return Buffer;\r
- }\r
- return InternalMemSetMem16 (Buffer, Length, Value);\r
+ return InternalMemSetMem16 (Buffer, Length / sizeof (Value), Value);\r
}\r