src/driver.cpp
branchnoai
changeset 11126 72d4c9314c72
parent 11044 097ea3e7ec56
--- a/src/driver.cpp	Mon Jun 30 21:31:23 2008 +0000
+++ b/src/driver.cpp	Wed Jul 09 13:32:13 2008 +0000
@@ -156,7 +156,9 @@
 	strecpy(buf, GetDriverTypeName(type), lastof(buf));
 	strecpy(buf + 5, name, lastof(buf));
 
-	std::pair<Drivers::iterator, bool> P = GetDrivers().insert(Drivers::value_type(buf, this));
+	const char *longname = strdup(buf);
+
+	std::pair<Drivers::iterator, bool> P = GetDrivers().insert(Drivers::value_type(longname, this));
 	assert(P.second);
 }
 
@@ -194,7 +196,14 @@
 	strecpy(buf, GetDriverTypeName(type), lastof(buf));
 	strecpy(buf + 5, this->name, lastof(buf));
 
-	GetDrivers().erase(buf);
+	Drivers::iterator it = GetDrivers().find(buf);
+	assert(it != GetDrivers().end());
+
+	const char *longname = (*it).first;
+
+	GetDrivers().erase(it);
+	free((void *)longname);
+
 	if (GetDrivers().empty()) delete &GetDrivers();
-	free(this->name);
+	free((void *)this->name);
 }