]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLib/SetMem32Wrapper.c
1. UINTN & INTN issue for EBC architecture:
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLib / SetMem32Wrapper.c
index 1ae7acb0132bf8bad4c1e8f2e638603b344f896e..77f1abda04d86a8a16a1703a8a45753ad1e3f6f0 100644 (file)
@@ -32,7 +32,7 @@
   Value, and returns Buffer. Value is repeated every 32-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 32-bit boundary, then ASSERT().\r
   If Length is not aligned on a 32-bit boundary, then ASSERT().\r
@@ -52,13 +52,14 @@ SetMem32 (
   IN      UINT32                    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 InternalMemSetMem32 (Buffer, Length, Value);\r
+  return InternalMemSetMem32 (Buffer, Length / sizeof (Value), Value);\r
 }\r