UINT16 Start[18];\r
UINT16 *Pointer;\r
UINT16 Index3;\r
- UINT16 Index;\r
+ volatile UINT16 Index;\r
UINT16 Len;\r
UINT16 Char;\r
UINT16 JuBits;\r
UINT16 Avail;\r
UINT16 NextCode;\r
UINT16 Mask;\r
+ UINT16 WordOfStart;\r
+ UINT16 WordOfCount;\r
\r
- SetMem (&Count[1], sizeof(UINT16) * 16, 0);\r
+ for (Index = 1; Index <= 16; Index++) {\r
+ Count[Index] = 0;\r
+ } \r
\r
for (Index = 0; Index < NumOfChar; Index++) {\r
Count[BitLen[Index]]++;\r
Start[1] = 0;\r
\r
for (Index = 1; Index <= 16; Index++) {\r
- Start[Index + 1] = (UINT16) (Start[Index] + (Count[Index] << (16 - Index)));\r
+ WordOfStart = Start[Index];\r
+ WordOfCount = Count[Index];\r
+ Start[Index + 1] = (UINT16) (WordOfStart + (WordOfCount << (16 - Index)));\r
}\r
\r
if (Start[17] != 0) {\r
}\r
\r
while (Index <= 16) {\r
- Weight[Index++] = (UINT16) (1U << (16 - Index));\r
+ Weight[Index] = (UINT16) (1U << (16 - Index));\r
+ Index++;\r
}\r
\r
Index = (UINT16) (Start[TableBits + 1] >> JuBits);\r
\r
if (Index != 0) {\r
Index3 = (UINT16) (1U << TableBits);\r
- SetMem(&Table[Index], sizeof(UINT16) * (Index3 - Index + 1), 0);\r
+ while (Index != Index3) {\r
+ Table[Index++] = 0;\r
+ }\r
}\r
\r
Avail = NumOfChar;\r
{\r
UINT16 Number;\r
UINT16 CharC;\r
- UINT16 Index;\r
+ volatile UINT16 Index;\r
UINT32 Mask;\r
\r
Number = (UINT16) GetBits (Sd, nbit);\r
Sd->mPTTable[Index] = CharC;\r
}\r
\r
- SetMem ((VOID*) &Sd->mPTLen, nn * sizeof(UINT8), 0);\r
+ for (Index = 0; Index < nn; Index++) {\r
+ Sd->mPTLen[Index] = 0;\r
+ }\r
\r
return 0;\r
}\r
}\r
}\r
\r
- SetMem ((VOID*) &Sd->mPTLen[Index], (nn - Index) * sizeof(UINT8), 0);\r
+ while (Index < nn) {\r
+ Sd->mPTLen[Index++] = 0;\r
+ }\r
+\r
return MakeTable (Sd, nn, Sd->mPTLen, 8, Sd->mPTTable);\r
}\r
\r
{\r
UINT16 Number;\r
UINT16 CharC;\r
- UINT16 Index;\r
+ volatile UINT16 Index;\r
UINT32 Mask;\r
\r
Number = (UINT16) GetBits (Sd, CBIT);\r
if (Number == 0) {\r
CharC = (UINT16) GetBits (Sd, CBIT);\r
\r
- SetMem ((VOID*)&Sd->mCLen, sizeof(UINT8) * NC, 0);\r
+ for (Index = 0; Index < NC; Index++) {\r
+ Sd->mCLen[Index] = 0;\r
+ }\r
\r
for (Index = 0; Index < 4096; Index++) {\r
Sd->mCTable[Index] = CharC;\r
}\r
}\r
\r
- SetMem ((VOID*) &Sd->mCLen[Index], sizeof(UINT8) * (NC - Index), 0);\r
+ while (Index < NC) {\r
+ Sd->mCLen[Index++] = 0;\r
+ }\r
\r
MakeTable (Sd, NC, Sd->mCLen, 12, Sd->mCTable);\r
\r
for (;;) {\r
CharC = DecodeC (Sd);\r
if (Sd->mBadTableFlag != 0) {\r
- return ;\r
+ goto Done ;\r
}\r
\r
if (CharC < 256) {\r
// Process an Original character\r
//\r
if (Sd->mOutBuf >= Sd->mOrigSize) {\r
- return ;\r
+ goto Done ;\r
} else {\r
Sd->mDstBase[Sd->mOutBuf++] = (UINT8) CharC;\r
}\r
while ((INT16) (BytesRemain) >= 0) {\r
Sd->mDstBase[Sd->mOutBuf++] = Sd->mDstBase[DataIdx++];\r
if (Sd->mOutBuf >= Sd->mOrigSize) {\r
- return ;\r
+ goto Done ;\r
}\r
\r
BytesRemain--;\r
}\r
}\r
\r
+Done:\r
+ return ;\r
}\r
\r
EFI_STATUS\r
SCRATCH_DATA *Sd;\r
UINT8 *Src;\r
UINT8 *Dst;\r
-\r
+ volatile UINT32 Index;\r
+ \r
Status = EFI_SUCCESS;\r
Src = Source;\r
Dst = Destination;\r
\r
Src = Src + 8;\r
\r
- SetMem ((VOID*) Sd, sizeof(SCRATCH_DATA), 0);\r
-\r
+ for (Index = 0; Index < sizeof (SCRATCH_DATA); Index++) {\r
+ ((UINT8 *) Sd)[Index] = 0;\r
+ }\r
+ \r
//\r
// The length of the field 'Position Set Code Length Array Size' in Block Header.\r
// For EFI 1.1 de/compression algorithm(Version 1), mPBit = 4\r