]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Remove volatile for local Index, and Use Memory library functions to fix the referenc...
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 23 Jan 2009 08:44:26 +0000 (08:44 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 23 Jan 2009 08:44:26 +0000 (08:44 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7359 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.c
MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf

index 58f7791fe7c9504854e6cfaf31c657038dd37108..840ea5f2c17d98d3dd64cbeba98f28a4d61d8302 100644 (file)
 \r
 \r
 #include <Base.h>\r
-\r
-\r
 #include <Library/BaseLib.h>\r
-#include <Library/UefiDecompressLib.h>\r
 #include <Library/DebugLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/UefiDecompressLib.h>\r
 \r
 #include "BaseUefiDecompressLibInternals.h"\r
 \r
@@ -142,7 +141,7 @@ MakeTable (
   UINT16  Start[18];\r
   UINT16  *Pointer;\r
   UINT16  Index3;\r
-  volatile UINT16  Index;\r
+  UINT16  Index;\r
   UINT16  Len;\r
   UINT16  Char;\r
   UINT16  JuBits;\r
@@ -192,8 +191,8 @@ MakeTable (
 \r
   if (Index != 0) {\r
     Index3 = (UINT16) (1U << TableBits);\r
-    while (Index != Index3) {\r
-      Table[Index++] = 0;\r
+    if (Index < Index3) {\r
+      SetMem16 (Table + Index, (Index3 - Index) * sizeof (*Table), 0);\r
     }\r
   }\r
 \r
@@ -322,7 +321,7 @@ ReadPTLen (
 {\r
   UINT16  Number;\r
   UINT16  CharC;\r
-  volatile UINT16  Index;\r
+  UINT16  Index;\r
   UINT32  Mask;\r
 \r
   //\r
@@ -340,9 +339,7 @@ ReadPTLen (
       Sd->mPTTable[Index] = CharC;\r
     }\r
 \r
-    for (Index = 0; Index < nn; Index++) {\r
-      Sd->mPTLen[Index] = 0;\r
-    }\r
+    SetMem (Sd->mPTLen, nn, 0);\r
 \r
     return 0;\r
   }\r
@@ -407,7 +404,7 @@ ReadCLen (
 {\r
   UINT16           Number;\r
   UINT16           CharC;\r
-  volatile UINT16  Index;\r
+  UINT16           Index;\r
   UINT32           Mask;\r
 \r
   Number = (UINT16) GetBits (Sd, CBIT);\r
@@ -418,9 +415,7 @@ ReadCLen (
     //\r
     CharC = (UINT16) GetBits (Sd, CBIT);\r
 \r
-    for (Index = 0; Index < NC; Index++) {\r
-      Sd->mCLen[Index] = 0;\r
-    }\r
+    SetMem (Sd->mCLen, NC, 0);\r
 \r
     for (Index = 0; Index < 4096; Index++) {\r
       Sd->mCTable[Index] = CharC;\r
@@ -473,9 +468,7 @@ ReadCLen (
     }\r
   }\r
 \r
-  while (Index < NC) {\r
-    Sd->mCLen[Index++] = 0;\r
-  }\r
+  SetMem (Sd->mCLen + Index, NC - Index, 0);\r
 \r
   MakeTable (Sd, NC, Sd->mCLen, 12, Sd->mCTable);\r
 \r
@@ -743,7 +736,6 @@ UefiDecompress (
   IN OUT VOID    *Scratch  OPTIONAL\r
   )\r
 {\r
-  volatile UINT32  Index;\r
   UINT32           CompSize;\r
   UINT32           OrigSize;\r
   SCRATCH_DATA     *Sd;\r
@@ -770,10 +762,8 @@ UefiDecompress (
   }\r
 \r
   Src = Src + 8;\r
+  SetMem (Sd, sizeof (SCRATCH_DATA), 0);\r
 \r
-  for (Index = 0; Index < sizeof (SCRATCH_DATA); Index++) {\r
-    ((UINT8 *) Sd)[Index] = 0;\r
-  }\r
   //\r
   // The length of the field 'Position Set Code Length Array Size' in Block Header.\r
   // For UEFI 2.0 de/compression algorithm(Version 1), mPBit = 4\r
index 28b7043cc20b93f992ac8724312254ef6fe64090..b4e98439369c3d16cb162312e572e669206cb602 100644 (file)
@@ -38,4 +38,5 @@
 [LibraryClasses]\r
   BaseLib\r
   DebugLib\r
+  BaseMemoryLib\r
 \r