From 7fc64a99cc7cce1f450bbbb18afbc93d0f4b15db Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Sat, 10 Mar 2007 06:26:11 +0000 Subject: [PATCH] Patched to compile. --- archivers/lzma.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/archivers/lzma.c b/archivers/lzma.c index 8ecd823f..930e7226 100644 --- a/archivers/lzma.c +++ b/archivers/lzma.c @@ -289,7 +289,9 @@ static PHYSFS_sint64 LZMA_read(fvoid *opaque, void *outBuffer, /* 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 @@ static PHYSFS_sint64 LZMA_read(fvoid *opaque, void *outBuffer, /* 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,