]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/LzmaCompress/LzmaCompress.c
BaseTools/GenFw: Add X64 GOTPCREL Support to GenFw
[mirror_edk2.git] / BaseTools / Source / C / LzmaCompress / LzmaCompress.c
index 1de07a35411ad1bdea5d7ce5241e21747d117b2f..ceb6a5bc77345d73448f77446e5b8f919639ee7d 100644 (file)
@@ -1,11 +1,11 @@
 /** @file\r
   LZMA Compress/Decompress tool (LzmaCompress)\r
 \r
-  Based on LZMA SDK 4.65:\r
+  Based on LZMA SDK 16.04:\r
     LzmaUtil.c -- Test application for LZMA compression\r
-    2008-11-23 : Igor Pavlov : Public domain\r
+    2016-10-04 : Igor Pavlov : Public domain\r
 \r
-  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -33,7 +33,7 @@
 #define LZMA_HEADER_SIZE (LZMA_PROPS_SIZE + 8)\r
 \r
 typedef enum {\r
-  NoConverter, \r
+  NoConverter,\r
   X86Converter,\r
   MaxConverter\r
 } CONVERTER_TYPE;\r
@@ -43,10 +43,6 @@ const char *kCantWriteMessage = "Can not write output file";
 const char *kCantAllocateMessage = "Can not allocate memory";\r
 const char *kDataErrorMessage = "Data error";\r
 \r
-static void *SzAlloc(void *p, size_t size) { (void)p; return MyAlloc(size); }\r
-static void SzFree(void *p, void *address) { (void)p; MyFree(address); }\r
-static ISzAlloc g_Alloc = { SzAlloc, SzFree };\r
-\r
 static Bool mQuietMode = False;\r
 static CONVERTER_TYPE mConType = NoConverter;\r
 \r
@@ -54,7 +50,7 @@ static CONVERTER_TYPE mConType = NoConverter;
 #define UTILITY_MAJOR_VERSION 0\r
 #define UTILITY_MINOR_VERSION 2\r
 #define INTEL_COPYRIGHT \\r
-  "Copyright (c) 2009-2012, Intel Corporation. All rights reserved."\r
+  "Copyright (c) 2009-2018, Intel Corporation. All rights reserved."\r
 void PrintHelp(char *buffer)\r
 {\r
   strcat(buffer,\r
@@ -117,7 +113,7 @@ static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 file
   } else {\r
     return SZ_ERROR_INPUT_EOF;\r
   }\r
-  \r
+\r
   if (SeqInStream_Read(inStream, inBuffer, inSize) != SZ_OK) {\r
     res = SZ_ERROR_READ;\r
     goto Done;\r
@@ -130,7 +126,7 @@ static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 file
     res = SZ_ERROR_MEM;\r
     goto Done;\r
   }\r
-  \r
+\r
   {\r
     int i;\r
     for (i = 0; i < 8; i++)\r
@@ -145,7 +141,7 @@ static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 file
       goto Done;\r
     }\r
     memcpy(filteredStream, inBuffer, inSize);\r
-    \r
+\r
     if (mConType == X86Converter) {\r
       {\r
         UInt32 x86State;\r
@@ -158,12 +154,12 @@ static SRes Encode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 file
   {\r
     size_t outSizeProcessed = outSize - LZMA_HEADER_SIZE;\r
     size_t outPropsSize = LZMA_PROPS_SIZE;\r
-    \r
+\r
     res = LzmaEncode(outBuffer + LZMA_HEADER_SIZE, &outSizeProcessed,\r
         mConType != NoConverter ? filteredStream : inBuffer, inSize,\r
         &props, outBuffer, &outPropsSize, 0,\r
         NULL, &g_Alloc, &g_Alloc);\r
-    \r
+\r
     if (res != SZ_OK)\r
       goto Done;\r
 \r
@@ -194,13 +190,13 @@ static SRes Decode(ISeqOutStream *outStream, ISeqInStream *inStream, UInt64 file
 \r
   int i;\r
 \r
-  if (inSize < LZMA_HEADER_SIZE) \r
+  if (inSize < LZMA_HEADER_SIZE)\r
     return SZ_ERROR_INPUT_EOF;\r
 \r
   inBuffer = (Byte *)MyAlloc(inSize);\r
   if (inBuffer == 0)\r
     return SZ_ERROR_MEM;\r
-  \r
+\r
   if (SeqInStream_Read(inStream, inBuffer, inSize) != SZ_OK) {\r
     res = SZ_ERROR_READ;\r
     goto Done;\r
@@ -333,8 +329,10 @@ int main2(int numArgs, const char *args[], char *rs)
   if (InFile_Open(&inStream.file, inputFile) != 0)\r
     return PrintError(rs, "Can not open input file");\r
 \r
-  if (OutFile_Open(&outStream.file, outputFile) != 0)\r
+  if (OutFile_Open(&outStream.file, outputFile) != 0) {\r
+    File_Close(&inStream.file);\r
     return PrintError(rs, "Can not open output file");\r
+  }\r
 \r
   File_GetLength(&inStream.file, &fileSize);\r
 \r