From 328ddf6b2ec596be5f1a9a27f8d96ccf5edb749e Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 13 Dec 2004 00:21:06 +0000 Subject: [PATCH] minor fixes --- stepmania/src/RageFileDriverDeflate.cpp | 7 +++++-- stepmania/src/RageFileDriverDeflate.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/stepmania/src/RageFileDriverDeflate.cpp b/stepmania/src/RageFileDriverDeflate.cpp index 19e82599de..ac58ea4132 100644 --- a/stepmania/src/RageFileDriverDeflate.cpp +++ b/stepmania/src/RageFileDriverDeflate.cpp @@ -233,7 +233,7 @@ int RageFileObjDeflate::WriteInternal( const void *pBuffer, size_t iBytes ) if( err != Z_OK ) FAIL_M( ssprintf("deflate: err %i", err) ); - if( m_pDeflate->avail_out > 0 ) + if( m_pDeflate->avail_out < sizeof(buf) ) { int iRet = m_pFile->Write( buf, sizeof(buf)-m_pDeflate->avail_out ); if( iRet == -1 ) @@ -247,6 +247,9 @@ int RageFileObjDeflate::WriteInternal( const void *pBuffer, size_t iBytes ) return iBytes; } +/* Note that flushing clears compression state, so (unlike most Flush() calls) + * calling this *does* change the result of the output if you continue writing + * data. */ int RageFileObjDeflate::FlushInternal() { m_pDeflate->avail_in = 0; @@ -272,7 +275,7 @@ int RageFileObjDeflate::FlushInternal() } if( err == Z_STREAM_END ) - return 0; + return m_pFile->Flush(); } } diff --git a/stepmania/src/RageFileDriverDeflate.h b/stepmania/src/RageFileDriverDeflate.h index 11b7fe8fab..bbfa22691b 100644 --- a/stepmania/src/RageFileDriverDeflate.h +++ b/stepmania/src/RageFileDriverDeflate.h @@ -45,7 +45,7 @@ public: int GetFileSize() const { return m_pFile->GetFileSize(); } void DeleteFileWhenFinished() { m_bFileOwned = true; } -private: +protected: int ReadInternal( void *pBuffer, size_t iBytes ) { SetError( "Not implemented" ); return -1; } int WriteInternal( const void *pBuffer, size_t iBytes ); int FlushInternal();