diff options
| author | Max Horn | 2009-07-14 18:24:20 +0000 | 
|---|---|---|
| committer | Max Horn | 2009-07-14 18:24:20 +0000 | 
| commit | 6b98c4c4e7a23089a6cccba573a1c3afd909f52d (patch) | |
| tree | 7bca862b8b3035e1b9ff054f67b8c83c891265c8 | |
| parent | 96abaaea6d06dae9bc1a48dc3b3afc936a92468b (diff) | |
| download | scummvm-rg350-6b98c4c4e7a23089a6cccba573a1c3afd909f52d.tar.gz scummvm-rg350-6b98c4c4e7a23089a6cccba573a1c3afd909f52d.tar.bz2 scummvm-rg350-6b98c4c4e7a23089a6cccba573a1c3afd909f52d.zip  | |
Got rid of some more ioFailed uses (also fixed a potential leak in graphics/font.cpp, and handle eos correctly in the FLAC code)
svn-id: r42488
| -rw-r--r-- | engines/kyra/saveload.cpp | 2 | ||||
| -rw-r--r-- | engines/touche/saveload.cpp | 6 | ||||
| -rw-r--r-- | engines/tucker/saveload.cpp | 2 | ||||
| -rw-r--r-- | graphics/font.cpp | 11 | ||||
| -rw-r--r-- | sound/flac.cpp | 10 | 
5 files changed, 20 insertions, 11 deletions
diff --git a/engines/kyra/saveload.cpp b/engines/kyra/saveload.cpp index a1aaf77d51..83230d6e3b 100644 --- a/engines/kyra/saveload.cpp +++ b/engines/kyra/saveload.cpp @@ -126,7 +126,7 @@ KyraEngine_v1::kReadSaveHeaderError KyraEngine_v1::readSaveHeader(Common::Seekab  		}  	} -	return (in->ioFailed() ? kRSHEIoError : kRSHENoError); +	return ((in->err() || in->eos()) ? kRSHEIoError : kRSHENoError);  }  Common::SeekableReadStream *KyraEngine_v1::openSaveForReading(const char *filename, SaveHeader &header) { diff --git a/engines/touche/saveload.cpp b/engines/touche/saveload.cpp index 69b8f9ba43..73817a5a1a 100644 --- a/engines/touche/saveload.cpp +++ b/engines/touche/saveload.cpp @@ -355,10 +355,10 @@ Common::Error ToucheEngine::loadGameState(int num) {  		} else {  			f->skip(2 + kGameStateDescriptionLen);  			loadGameStateData(f); -			if (!f->ioFailed()) { -				loadOk = true; -			} else { +			if (f->err() || f->eos()) {  				warning("Can't read file '%s'", gameStateFileName.c_str()); +			} else { +				loadOk = true;  			}  		}  		delete f; diff --git a/engines/tucker/saveload.cpp b/engines/tucker/saveload.cpp index cf7f985416..83533a90c3 100644 --- a/engines/tucker/saveload.cpp +++ b/engines/tucker/saveload.cpp @@ -88,7 +88,7 @@ Common::Error TuckerEngine::loadGameState(int num) {  		} else {  			f->skip(2);  			saveOrLoadGameStateData(*f); -			if (f->ioFailed()) { +			if (f->err() || f->eos()) {  				warning("Can't read file '%s'", gameStateFileName.c_str());  				ret = Common::kReadingFailed;  			} else { diff --git a/graphics/font.cpp b/graphics/font.cpp index bfc6dea0c1..4d322be081 100644 --- a/graphics/font.cpp +++ b/graphics/font.cpp @@ -733,6 +733,14 @@ NewFont *NewFont::loadFromCache(Common::SeekableReadStream &stream) {  		}  	} +	if (stream.err() || stream.eos()) { +		free(data->bits); +		free(data->offset); +		free(data->width); +		free(data); +		return 0; +	} +  	FontDesc desc;  	desc.name = data->name;  	desc.maxwidth = data->maxwidth; @@ -752,8 +760,7 @@ NewFont *NewFont::loadFromCache(Common::SeekableReadStream &stream) {  	desc.bits_size = data->bits_size;  	font = new NewFont(desc, data); -	if (!font || stream.err()) { -		delete font; +	if (!font) {  		free(data->bits);  		free(data->offset);  		free(data->width); diff --git a/sound/flac.cpp b/sound/flac.cpp index 5b6a04b726..bb633b8352 100644 --- a/sound/flac.cpp +++ b/sound/flac.cpp @@ -402,21 +402,23 @@ int FlacInputStream::readBuffer(int16 *buffer, const int numSamples) {  }  inline ::FLAC__SeekableStreamDecoderReadStatus FlacInputStream::callbackRead(FLAC__byte buffer[], FLAC_size_t *bytes) { -	if (*bytes == 0) +	if (*bytes == 0) {  #ifdef LEGACY_FLAC  		return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR; /* abort to avoid a deadlock */  #else  		return FLAC__STREAM_DECODER_READ_STATUS_ABORT; /* abort to avoid a deadlock */  #endif +	}  	const uint32 bytesRead = _inStream->read(buffer, *bytes); -	if (bytesRead == 0 && _inStream->ioFailed()) +	if (bytesRead == 0) {  #ifdef LEGACY_FLAC -		return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR; +		return _inStream->eos() ? FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK : FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;  #else -		return FLAC__STREAM_DECODER_READ_STATUS_ABORT; +		return _inStream->eos() ? FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM : FLAC__STREAM_DECODER_READ_STATUS_ABORT;  #endif +	}  	*bytes = static_cast<uint>(bytesRead);  #ifdef LEGACY_FLAC  | 
