[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