From 96d880ea9e91f9c9bdbc2a25918122ad382be97c Mon Sep 17 00:00:00 2001 From: smatz Date: Tue, 24 Jun 2008 09:15:45 +0000 Subject: (svn r13619) -Codechange: use 'const char *' instead of std::string for blitter and driver names Removes indirect dependency on for 20 files, reduces binary size by 16kB --- src/driver.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/driver.cpp') diff --git a/src/driver.cpp b/src/driver.cpp index 63e76cffa..b042ea620 100644 --- a/src/driver.cpp +++ b/src/driver.cpp @@ -156,7 +156,9 @@ void DriverFactoryBase::RegisterDriver(const char *name, Driver::Type type, int strecpy(buf, GetDriverTypeName(type), lastof(buf)); strecpy(buf + 5, name, lastof(buf)); - std::pair P = GetDrivers().insert(Drivers::value_type(buf, this)); + const char *longname = strdup(buf); + + std::pair P = GetDrivers().insert(Drivers::value_type(longname, this)); assert(P.second); } @@ -194,7 +196,14 @@ DriverFactoryBase::~DriverFactoryBase() { 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); } -- cgit v1.2.3-70-g09d2