diff --git a/stepmania/src/RageFileDriverZip.cpp b/stepmania/src/RageFileDriverZip.cpp index 325e85b821..72a794a61f 100644 --- a/stepmania/src/RageFileDriverZip.cpp +++ b/stepmania/src/RageFileDriverZip.cpp @@ -502,9 +502,14 @@ RageFileObjZipDeflated::RageFileObjZipDeflated( const RageFileObjZipDeflated &cp RageFileObjZipDeflated::~RageFileObjZipDeflated() { - int err = inflateReset( &dstrm ); + //We MUST use inflateEnd() here insted of inflateReset(). Use + //of inflateReset() will cause large quantities of globally + //allocated ram to be leaked, making it impervious to most leak + //detection. See zlib.h documentation on inflateReset() for + //more information. + int err = inflateEnd( &dstrm ); if( err != Z_OK ) - LOG->Trace( "Huh? inflateReset() err = %i", err ); + LOG->Trace( "Huh? inflateEnd() err = %i", err ); } int RageFileObjZipDeflated::Read( void *buf, size_t bytes )