diff --git a/engines/bagel/baglib/character_object.cpp b/engines/bagel/baglib/character_object.cpp index c24b78198e24..688a4bcb8d08 100644 --- a/engines/bagel/baglib/character_object.cpp +++ b/engines/bagel/baglib/character_object.cpp @@ -74,6 +74,7 @@ ErrorCode CBagCharacterObject::attach() { decoder->setSoundType(Audio::Mixer::kSFXSoundType); if (!decoder->loadFile(filename.getBuffer())) { logError(buildString("CHAR SmackOpen failed: %s ", filename.getBuffer())); + delete decoder; return ERR_FOPEN; } diff --git a/engines/bagel/spacebar/sraf_computer.cpp b/engines/bagel/spacebar/sraf_computer.cpp index 9711f45f9cf5..319e74a7730a 100644 --- a/engines/bagel/spacebar/sraf_computer.cpp +++ b/engines/bagel/spacebar/sraf_computer.cpp @@ -4558,12 +4558,11 @@ SrafTextScreen::SrafTextScreen(const CBofString &str, bool isText) : _text = str; } else { - CBofFile *file = new CBofFile(str, CBF_BINARY | CBF_READONLY); - assert(file != nullptr); + CBofFile file(str, CBF_BINARY | CBF_READONLY); - size_t len = file->getLength(); + size_t len = file.getLength(); char *tmp = new char[len + 1]; - file->read(tmp, len); + file.read(tmp, len); tmp[len] = '\0'; _text = CBofString(tmp);