[Scummvm-cvs-logs] SF.net SVN: scummvm:[42488] scummvm/trunk
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Tue Jul 14 20:24:20 CEST 2009
Revision: 42488
http://scummvm.svn.sourceforge.net/scummvm/?rev=42488&view=rev
Author: fingolfin
Date: 2009-07-14 18:24:20 +0000 (Tue, 14 Jul 2009)
Log Message:
-----------
Got rid of some more ioFailed uses (also fixed a potential leak in graphics/font.cpp, and handle eos correctly in the FLAC code)
Modified Paths:
--------------
scummvm/trunk/engines/kyra/saveload.cpp
scummvm/trunk/engines/touche/saveload.cpp
scummvm/trunk/engines/tucker/saveload.cpp
scummvm/trunk/graphics/font.cpp
scummvm/trunk/sound/flac.cpp
Modified: scummvm/trunk/engines/kyra/saveload.cpp
===================================================================
--- scummvm/trunk/engines/kyra/saveload.cpp 2009-07-14 18:15:07 UTC (rev 42487)
+++ scummvm/trunk/engines/kyra/saveload.cpp 2009-07-14 18:24:20 UTC (rev 42488)
@@ -126,7 +126,7 @@
}
}
- return (in->ioFailed() ? kRSHEIoError : kRSHENoError);
+ return ((in->err() || in->eos()) ? kRSHEIoError : kRSHENoError);
}
Common::SeekableReadStream *KyraEngine_v1::openSaveForReading(const char *filename, SaveHeader &header) {
Modified: scummvm/trunk/engines/touche/saveload.cpp
===================================================================
--- scummvm/trunk/engines/touche/saveload.cpp 2009-07-14 18:15:07 UTC (rev 42487)
+++ scummvm/trunk/engines/touche/saveload.cpp 2009-07-14 18:24:20 UTC (rev 42488)
@@ -355,10 +355,10 @@
} else {
f->skip(2 + kGameStateDescriptionLen);
loadGameStateData(f);
- if (!f->ioFailed()) {
+ if (f->err() || f->eos()) {
+ warning("Can't read file '%s'", gameStateFileName.c_str());
+ } else {
loadOk = true;
- } else {
- warning("Can't read file '%s'", gameStateFileName.c_str());
}
}
delete f;
Modified: scummvm/trunk/engines/tucker/saveload.cpp
===================================================================
--- scummvm/trunk/engines/tucker/saveload.cpp 2009-07-14 18:15:07 UTC (rev 42487)
+++ scummvm/trunk/engines/tucker/saveload.cpp 2009-07-14 18:24:20 UTC (rev 42488)
@@ -88,7 +88,7 @@
} 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 {
Modified: scummvm/trunk/graphics/font.cpp
===================================================================
--- scummvm/trunk/graphics/font.cpp 2009-07-14 18:15:07 UTC (rev 42487)
+++ scummvm/trunk/graphics/font.cpp 2009-07-14 18:24:20 UTC (rev 42488)
@@ -733,6 +733,14 @@
}
}
+ 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 @@
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);
Modified: scummvm/trunk/sound/flac.cpp
===================================================================
--- scummvm/trunk/sound/flac.cpp 2009-07-14 18:15:07 UTC (rev 42487)
+++ scummvm/trunk/sound/flac.cpp 2009-07-14 18:24:20 UTC (rev 42488)
@@ -402,21 +402,23 @@
}
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
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list