aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2009-02-01 20:53:30 +0000
committerJohannes Schickel2009-02-01 20:53:30 +0000
commit1aa84d4b5e3662fbcc844fa6062adb8de42ef5d4 (patch)
tree924c252e12eb3e0c51f28992666c6156298b2bd6 /engines
parentf1ebbebd7b8f7aa62256b08d73086df2f6b5cb28 (diff)
downloadscummvm-rg350-1aa84d4b5e3662fbcc844fa6062adb8de42ef5d4.tar.gz
scummvm-rg350-1aa84d4b5e3662fbcc844fa6062adb8de42ef5d4.tar.bz2
scummvm-rg350-1aa84d4b5e3662fbcc844fa6062adb8de42ef5d4.zip
- Fixed mismatching new[] / free.
- Fixed bad casting svn-id: r36186
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/sound.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/kyra/sound.cpp b/engines/kyra/sound.cpp
index 197d2cd2dd..7e16c5be53 100644
--- a/engines/kyra/sound.cpp
+++ b/engines/kyra/sound.cpp
@@ -125,12 +125,14 @@ void Sound::voicePlayFromList(Common::List<const char*> fileList) {
Audio::AppendableAudioStream *out = Audio::makeAppendableAudioStream(22050, Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_UNSIGNED);
for (Common::List<const char*>::iterator i = fileList.begin(); i != fileList.end(); i++) {
- int size;
- int rate;
- uint8 *file = _vm->resource()->fileData(*i, (uint32*)&size);
- Common::MemoryReadStream vocStream(file, (uint32)size);
+ uint32 fileSize = 0;
+ uint8 *file = _vm->resource()->fileData(*i, &fileSize);
+ Common::MemoryReadStream vocStream(file, fileSize, true);
+
+ int size, rate;
uint8 *data = Audio::loadVOCFromStream(vocStream, size, rate);
- out->queueBuffer(data, size);
+ out->queueBuffer(data, size);
+ delete[] file;
}
out->finish();