[Scummvm-git-logs] scummvm master -> 62f9284afe329804db7c853f3c72ec5bc7dd94fb

Strangerke noreply at scummvm.org
Wed May 22 07:18:52 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
62f9284afe BAGEL: Fix a couple of potential memory leaks in CBagMovieObject, remove a useless part of a check (mention by PVS Studi


Commit: 62f9284afe329804db7c853f3c72ec5bc7dd94fb
    https://github.com/scummvm/scummvm/commit/62f9284afe329804db7c853f3c72ec5bc7dd94fb
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2024-05-22T08:18:44+01:00

Commit Message:
BAGEL: Fix a couple of potential memory leaks in CBagMovieObject, remove a useless part of a check (mention by PVS Studio)

Changed paths:
    engines/bagel/baglib/movie_object.cpp


diff --git a/engines/bagel/baglib/movie_object.cpp b/engines/bagel/baglib/movie_object.cpp
index a40f114885b..1930382fcf0 100644
--- a/engines/bagel/baglib/movie_object.cpp
+++ b/engines/bagel/baglib/movie_object.cpp
@@ -250,15 +250,16 @@ bool CBagMovieObject::runObject() {
 
 					CBagFMovie *pMovie = new CBagFMovie(CBofApp::getApp()->getMainWindow(), sFileName, &r);
 
-					if (pMovie->errorOccurred() == false) {
+					if (pMovie->errorOccurred())
+						logError(buildString("Movie file could not be read: %s.  How? You removed that CD again didn't you", sFileName.getBuffer()));
+					else {
 						pMovie->show();
 						CBofApp::getApp()->getMainWindow()->flushAllMessages();
 						pWnd->flushAllMessages();
 						pMovie->play(false);
-						delete pMovie;
-					} else {
-						logError(buildString("Movie file could not be read: %s.  How? You removed that CD again didn't you", sFileName.getBuffer()));
 					}
+					delete pMovie;
+					pMovie = nullptr;
 
 					delete pNewWin;
 					pNewWin = nullptr;
@@ -278,17 +279,13 @@ bool CBagMovieObject::runObject() {
 
 					if (_xDisplayType == dispType::ASYNCH_PDA_MSG) {
 						// Tell our PDA to switch gears to do asynch movie time.
-						if (pPDA) {
-							if (pPDA->showMovie()) {       // Returns false if another movie playing
-								pPDA->setMovie(sFileName); // Set the movie to play
-							}
-						} else {
-							logError(buildString("Movie file could not be read: %s.  How? You removed that CD again didn't you", sFileName.getBuffer()));
+						if (pPDA->showMovie()) {       // Returns false if another movie playing
+							pPDA->setMovie(sFileName); // Set the movie to play
 						}
 					} else {
 						CBofMovie *pMovie;
 
-						if (bZoomed && _xDisplayType != dispType::ASYNCH_PDA_MSG && _xDisplayType != dispType::PDA_MSG) {
+						if (bZoomed && _xDisplayType != dispType::PDA_MSG) {
 							pNewWin = new CBofWindow();
 							pNewWin->create("BLACK", 0, 0, 640, 480, CBofApp::getApp()->getMainWindow(), 0);
 							pNewWin->show();
@@ -296,7 +293,7 @@ bool CBagMovieObject::runObject() {
 						}
 
 						// If playing a PDA message while the PDA is zoomed
-						if (_xDisplayType == dispType::PDA_MSG && bZoomed) {
+						if (bZoomed && _xDisplayType == dispType::PDA_MSG) {
 							// Then stretch it to fit into the PDA's viewscreen
 							r.setRect(24, 47, 28 + 600 - 1, 47 + 302 - 1);
 							pMovie = new CBofMovie(CBofApp::getApp()->getMainWindow(), sFileName, &r, true);
@@ -306,23 +303,23 @@ bool CBagMovieObject::runObject() {
 							pMovie = new CBofMovie(CBofApp::getApp()->getMainWindow(), sFileName, &r);
 						}
 
-						if (pMovie->errorOccurred() == false) {
+						if (pMovie->errorOccurred())
+							logError(buildString("Movie file could not be read: %s.  How? You removed that CD again didn't you", sFileName.getBuffer()));
+						else {
 							// Stop any asnych movies already playing
 							pPDA->stopMovie(true);
 							pMovie->show();
 							CBofApp::getApp()->getMainWindow()->flushAllMessages();
 							pWnd->flushAllMessages();
 							pMovie->play(false);
-							delete pMovie;
-						} else {
-							logError(buildString("Movie file could not be read: %s.  How? You removed that CD again didn't you", sFileName.getBuffer()));
 						}
-
+						
+						delete pMovie;
+						pMovie = nullptr;
+						
 						// If we put a black window up, then
-						if (pNewWin) {
-							delete pNewWin;
-							pNewWin = nullptr;
-						}
+						delete pNewWin;
+						pNewWin = nullptr;
 					}
 				}
 




More information about the Scummvm-git-logs mailing list