[Scummvm-cvs-logs] scummvm master -> a4d3ad396cddae75791f07ff5e87db788f617e3f

m-kiewitz m_kiewitz at users.sourceforge.net
Fri Jul 3 00:57:59 CEST 2015


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:
a4d3ad396c AGOS: Accolade music driver: fix memory leak


Commit: a4d3ad396cddae75791f07ff5e87db788f617e3f
    https://github.com/scummvm/scummvm/commit/a4d3ad396cddae75791f07ff5e87db788f617e3f
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2015-07-03T00:57:25+02:00

Commit Message:
AGOS: Accolade music driver: fix memory leak

in factory

Changed paths:
    engines/agos/drivers/accolade/adlib.cpp
    engines/agos/drivers/accolade/mt32.cpp



diff --git a/engines/agos/drivers/accolade/adlib.cpp b/engines/agos/drivers/accolade/adlib.cpp
index ed05fe1..11edc7c 100644
--- a/engines/agos/drivers/accolade/adlib.cpp
+++ b/engines/agos/drivers/accolade/adlib.cpp
@@ -872,13 +872,14 @@ MidiDriver *MidiDriver_Accolade_AdLib_create(Common::String driverFilename) {
 		error("ACCOLADE-ADLIB: error during readDriver()");
 
 	MidiDriver_Accolade_AdLib *driver = new MidiDriver_Accolade_AdLib(g_system->getMixer());
-	if (!driver)
-		return nullptr;
-
-	if (!driver->setupInstruments(driverData, driverDataSize, isMusicDrvFile)) {
-		delete driver;
-		return nullptr;
+	if (driver) {
+		if (!driver->setupInstruments(driverData, driverDataSize, isMusicDrvFile)) {
+			delete driver;
+			driver = nullptr;
+		}
 	}
+
+	delete[] driverData;
 	return driver;
 }
 
diff --git a/engines/agos/drivers/accolade/mt32.cpp b/engines/agos/drivers/accolade/mt32.cpp
index 2a02329..319e0eb 100644
--- a/engines/agos/drivers/accolade/mt32.cpp
+++ b/engines/agos/drivers/accolade/mt32.cpp
@@ -264,13 +264,14 @@ MidiDriver *MidiDriver_Accolade_MT32_create(Common::String driverFilename) {
 		error("ACCOLADE-ADLIB: error during readDriver()");
 
 	MidiDriver_Accolade_MT32 *driver = new MidiDriver_Accolade_MT32();
-	if (!driver)
-		return nullptr;
-
-	if (!driver->setupInstruments(driverData, driverDataSize, isMusicDrvFile)) {
-		delete driver;
-		return nullptr;
+	if (driver) {
+		if (!driver->setupInstruments(driverData, driverDataSize, isMusicDrvFile)) {
+			delete driver;
+			driver = nullptr;
+		}
 	}
+
+	delete[] driverData;
 	return driver;
 }
 






More information about the Scummvm-git-logs mailing list