From 0ae8641ce701baf2de3b0751971a64769e862012 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Thu, 22 Feb 2007 00:51:48 +0000 Subject: [PATCH] reader fixes --- stepmania/src/RageSoundReader_FileReader.cpp | 10 +++++----- stepmania/src/RageSoundReader_MP3.cpp | 2 ++ stepmania/src/RageSoundReader_WAV.cpp | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/stepmania/src/RageSoundReader_FileReader.cpp b/stepmania/src/RageSoundReader_FileReader.cpp index 6f651f88b4..be579b3a14 100644 --- a/stepmania/src/RageSoundReader_FileReader.cpp +++ b/stepmania/src/RageSoundReader_FileReader.cpp @@ -87,12 +87,12 @@ RageSoundReader_FileReader *RageSoundReader_FileReader::TryOpenFile( RageFileBas RageSoundReader_FileReader *RageSoundReader_FileReader::OpenFile( RString filename, RString &error, bool *pPrebuffer ) { - RageFileBasic *pFile = NULL; + HiddenPtr pFile; { RageFile *pFileOpen = new RageFile; if( !pFileOpen->Open(filename) ) { - error = pFile->GetError(); + error = pFileOpen->GetError(); delete pFileOpen; return NULL; } @@ -105,13 +105,13 @@ RageSoundReader_FileReader *RageSoundReader_FileReader::OpenFile( RString filena { RageFileObjMem *pMem = new RageFileObjMem; bool bRet = FileCopy( *pFile, *pMem, error, NULL ); - delete pFile; - pFile = pMem; if( !bRet ) { - delete pFile; + delete pMem; return NULL; } + + pFile = pMem; pFile->Seek( 0 ); *pPrebuffer = true; } diff --git a/stepmania/src/RageSoundReader_MP3.cpp b/stepmania/src/RageSoundReader_MP3.cpp index 71933dafad..ff3e29d0d1 100644 --- a/stepmania/src/RageSoundReader_MP3.cpp +++ b/stepmania/src/RageSoundReader_MP3.cpp @@ -693,6 +693,8 @@ RageSoundReader_MP3 *RageSoundReader_MP3::Copy() const { RageSoundReader_MP3 *ret = new RageSoundReader_MP3; + ret->m_pFile = m_pFile->Copy(); + ret->m_pFile->Seek( 0 ); ret->m_bAccurateSync = m_bAccurateSync; ret->mad->filesize = mad->filesize; ret->mad->bitrate = mad->bitrate; diff --git a/stepmania/src/RageSoundReader_WAV.cpp b/stepmania/src/RageSoundReader_WAV.cpp index 108b52be84..4ff19d4fef 100644 --- a/stepmania/src/RageSoundReader_WAV.cpp +++ b/stepmania/src/RageSoundReader_WAV.cpp @@ -617,7 +617,9 @@ RageSoundReader_WAV::~RageSoundReader_WAV() RageSoundReader_WAV *RageSoundReader_WAV::Copy() const { RageSoundReader_WAV *ret = new RageSoundReader_WAV; - ret->Open( m_pFile->Copy() ); + RageFileBasic *pFile = m_pFile->Copy();; + pFile->Seek( 0 ); + ret->Open( pFile ); return ret; }