Browse Source

ENH: fix leaks and turn on by default

Bill Hoffman 18 years ago
parent
commit
50c5d5a3d5

+ 1 - 1
Source/kwsys/CMakeLists.txt

@@ -137,7 +137,7 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
   SET(KWSYS_USE_IOStream 1)
   SET(KWSYS_USE_DateStamp 1)
   SET(KWSYS_USE_String 1)
-#  SET(KWSYS_USE_SystemInformation 1)
+  SET(KWSYS_USE_SystemInformation 1)
 ENDIF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
 
 # Setup the large file support default.

+ 20 - 18
Source/kwsys/SystemInformation.cxx

@@ -17,6 +17,7 @@
 #include KWSYS_HEADER(SystemInformation.hxx)
 #include KWSYS_HEADER(Process.h)
 #include KWSYS_HEADER(ios/iostream)
+#include KWSYS_HEADER(ios/sstream)
 #ifndef WIN32
   #include <sys/utsname.h> // int uname(struct utsname *buf);
 #endif
@@ -171,35 +172,35 @@ const char * SystemInformation::GetVendorID()
 }
 
 /** Return the type ID of the CPU */
-const char * SystemInformation::GetTypeID()
+kwsys_stl::string SystemInformation::GetTypeID()
 {
-  char * temp = new char[32];
-  sprintf(temp,"%d",this->ChipID.Type);
-  return temp;
+  kwsys_ios::ostringstream str;
+  str << this->ChipID.Type;
+  return str.str();
 }
 
 /** Return the family of the CPU present */
-const char * SystemInformation::GetFamilyID()
+kwsys_stl::string SystemInformation::GetFamilyID()
 {
-  char * temp = new char[32];
-  sprintf(temp,"%d",this->ChipID.Family);
-  return temp;
+  kwsys_ios::ostringstream str;
+  str << this->ChipID.Family;
+  return str.str();
 }
 
 // Return the model of CPU present */
-const char * SystemInformation::GetModelID()
+kwsys_stl::string SystemInformation::GetModelID()
 {
-  char * temp = new char[32];
-  sprintf(temp,"%d",this->ChipID.Model);
-  return temp;
+  kwsys_ios::ostringstream str;
+  str << this->ChipID.Model;
+  return str.str();
 }
 
 /** Return the stepping code of the CPU present. */
-const char * SystemInformation::GetSteppingCode()
-{
-  char * temp = new char[32];
-  sprintf(temp,"%d",this->ChipID.Revision);
-  return temp;
+kwsys_stl::string SystemInformation::GetSteppingCode()
+{ 
+  kwsys_ios::ostringstream str;
+  str << this->ChipID.Revision;
+  return str.str();
 }
 
 /** Return the stepping code of the CPU present. */
@@ -2649,7 +2650,8 @@ bool SystemInformation::QueryOSInformation()
       this->OSRelease = "Unknown";
       break;
   }
-
+  delete [] operatingSystem;
+  operatingSystem = 0;
 
   // Get the hostname
   WORD wVersionRequested;

+ 4 - 4
Source/kwsys/SystemInformation.hxx.in

@@ -113,10 +113,10 @@ public:
 
   const char * GetVendorString();
   const char * GetVendorID();
-  const char * GetTypeID();
-  const char * GetFamilyID();
-  const char * GetModelID();
-  const char * GetSteppingCode();
+  kwsys_stl::string GetTypeID();
+  kwsys_stl::string GetFamilyID();
+  kwsys_stl::string GetModelID();
+  kwsys_stl::string GetSteppingCode();
   const char * GetExtendedProcessorName();
   const char * GetProcessorSerialNumber();
   int GetProcessorCacheSize();