diff options
author | Sven Hesse | 2009-07-14 08:57:55 +0000 |
---|---|---|
committer | Sven Hesse | 2009-07-14 08:57:55 +0000 |
commit | aac58c80cc6f21c3ee7dc402520a219c3098d688 (patch) | |
tree | 03d729ccadd25639712841b64172734e0100f0df | |
parent | dbf968b49e44cc6e0ddf5b04ba2bf1396c42cb59 (diff) | |
download | scummvm-rg350-aac58c80cc6f21c3ee7dc402520a219c3098d688.tar.gz scummvm-rg350-aac58c80cc6f21c3ee7dc402520a219c3098d688.tar.bz2 scummvm-rg350-aac58c80cc6f21c3ee7dc402520a219c3098d688.zip |
Removing ioFailed() usage and fixing a leak in case of error
svn-id: r42469
-rw-r--r-- | graphics/video/coktelvideo/coktelvideo.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/graphics/video/coktelvideo/coktelvideo.cpp b/graphics/video/coktelvideo/coktelvideo.cpp index 995247acaa..39aa8c5d2d 100644 --- a/graphics/video/coktelvideo/coktelvideo.cpp +++ b/graphics/video/coktelvideo/coktelvideo.cpp @@ -1819,16 +1819,18 @@ Common::MemoryReadStream *Vmd::getExtraData(const char *fileName) { return 0; } - byte *data = (byte *) malloc(_extraData[i].realSize); - - _stream->seek(_extraData[i].offset); - if (_stream->ioFailed() || (((uint32) _stream->pos()) != _extraData[i].offset)) { - warning("Vmd::getExtraData(): Can't seek to offset %d to get extra data file \"%s\"", + if (!_stream->seek(_extraData[i].offset)) { + warning("Vmd::getExtraData(): Can't seek to offset %d to (file \"%s\")", _extraData[i].offset, fileName); return 0; } - _stream->read(data, _extraData[i].realSize); + byte *data = (byte *) malloc(_extraData[i].realSize); + if (_stream->read(data, _extraData[i].realSize) != _extraData[i].realSize) { + free(data); + warning("Vmd::getExtraData(): Couldn't read %d bytes (file \"%s\")", + _extraData[i].realSize, fileName); + } Common::MemoryReadStream *stream = new Common::MemoryReadStream(data, _extraData[i].realSize, true); |