From 97f9e48eb3e77823c8dac2f70a65ffc753167f7e Mon Sep 17 00:00:00 2001 From: sluicebox <22204938+sluicebox@users.noreply.github.com> Date: Tue, 7 May 2024 21:30:14 -0700 Subject: [PATCH] BAGEL: Fix memory leaks. PVS-Studio V773 --- engines/bagel/baglib/character_object.cpp | 1 + engines/bagel/spacebar/sraf_computer.cpp | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) 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);