Patched to compile.
authorRyan C. Gordon <icculus@icculus.org>
Sat, 10 Mar 2007 06:26:11 +0000
changeset 797 c575b78bf2fe
parent 796 5085b2f1213e
child 798 18455baab480
Patched to compile.
archivers/lzma.c
--- a/archivers/lzma.c	Sat Mar 10 06:24:56 2007 +0000
+++ b/archivers/lzma.c	Sat Mar 10 06:26:11 2007 +0000
@@ -289,7 +289,9 @@
 
     /* Only decompress the folder if it is not allready cached */
     if (entry->archive->folder[entry->folderIndex].cache == NULL)
-        if (lzma_err(SzExtract(
+    {
+        size_t tmpsize = entry->archive->folder[entry->folderIndex].size;
+        int rc = lzma_err(SzExtract(
             &entry->archive->stream.InStream, /* compressed data */
             &entry->archive->db,
             entry->fileIndex,
@@ -298,14 +300,17 @@
             /* Cache for decompressed folder, allocated/freed by SzExtract */
             &entry->archive->folder[entry->folderIndex].cache,
             /* Size of cache, will be changed by SzExtract */
-            &entry->archive->folder[entry->folderIndex].size,
+            &tmpsize,
             /* Offset of this file inside the cache, set by SzExtract */
             &entry->offset,
             &fileSize, /* Size of this file */
             &allocImp,
-            &allocTempImp
-                )) != SZ_OK)
+            &allocTempImp));
+
+        entry->archive->folder[entry->folderIndex].size = tmpsize;
+        if (rc != SZ_OK)
             return -1;
+    } /* if */
 
     /* Copy wanted bytes over from cache to outBuffer */
     strncpy(outBuffer,