Fix memory leaks, patch by Samuel SerapiĆ³n
authorZiliang Guo <drakekaizer666@gmail.com>
Mon, 21 Apr 2008 02:15:19 +0000 (02:15 +0000)
committerZiliang Guo <drakekaizer666@gmail.com>
Mon, 21 Apr 2008 02:15:19 +0000 (02:15 +0000)
svn path=/trunk/; revision=33082

reactos/tools/rbuild/define.cpp
reactos/tools/rbuild/directory.cpp
reactos/tools/rbuild/module.cpp
reactos/tools/rbuild/project.cpp
reactos/tools/rbuild/rbuild.h

index d071a74..d972d67 100644 (file)
@@ -57,6 +57,10 @@ Define::Define ( const Project& project,
 
 Define::~Define ()
 {
+//     if ( node )
+//             delete node;
+//     if ( module )
+//             delete module;
 }
 
 void
index 2a612fe..3813283 100644 (file)
@@ -240,3 +240,10 @@ Directory::CreateRule ( FILE* f,
                i->second->CreateRule ( f, path );
        }
 }
+
+Directory::~Directory()
+{
+       std::map<std::string, Directory*>::iterator theIterator;
+       for ( theIterator = subdirs.begin (); theIterator != subdirs.end (); theIterator++ )
+               delete theIterator->second;
+}
index 4af7ade..d852224 100644 (file)
@@ -494,7 +494,12 @@ Module::~Module ()
                delete bootstrap;
        if ( importLibrary )
                delete importLibrary;
-       delete output;
+       if ( dependency )
+               delete  dependency;
+       if ( autoRegister )
+               delete autoRegister;
+       if ( output )
+               delete output;          
 }
 
 void
index c25cc3e..f60f828 100644 (file)
@@ -195,7 +195,8 @@ Project::~Project ()
                delete cdfiles[i];
        for ( i = 0; i < installfiles.size (); i++ )
                delete installfiles[i];
-       delete head;
+       if ( head )
+               delete head;
 }
 
 const Property*
@@ -252,7 +253,7 @@ Project::ResolveProperties ( const string& s ) const
 void
 Project::SetConfigurationOption ( char* s,
                                   string name,
-                                  string* alternativeName )
+                                  string alternativeName )
 {
        const Property* property = LookupProperty ( name );
        if ( property != NULL && property->value.length () > 0 )
@@ -268,11 +269,11 @@ Project::SetConfigurationOption ( char* s,
                                  "#define %s\n",
                                  property->name.c_str () );
        }
-       else if ( alternativeName != NULL )
+       else if ( !alternativeName.empty()  )
        {
                s = s + sprintf ( s,
                                  "#define %s\n",
-                                 alternativeName->c_str () );
+                                 alternativeName.c_str () );
        }
 }
 
@@ -280,7 +281,7 @@ void
 Project::SetConfigurationOption ( char* s,
                                      string name )
 {
-       SetConfigurationOption ( s, name, NULL );
+       SetConfigurationOption ( s, name, "" );
 }
 
 void
@@ -301,7 +302,7 @@ Project::WriteConfigurationFile ()
 
        SetConfigurationOption ( s, "ARCH" );
        SetConfigurationOption ( s, "OPTIMIZED" );
-       SetConfigurationOption ( s, "MP", new string ( "UP" ) );
+       SetConfigurationOption ( s, "MP", "UP");
        SetConfigurationOption ( s, "ACPI" );
        SetConfigurationOption ( s, "_3GB" );
 
index 1e0f431..e9f7f20 100644 (file)
@@ -134,6 +134,7 @@ public:
        std::string name;
        directory_map subdirs;
        Directory ( const std::string& name );
+       ~Directory();
        void Add ( const char* subdir );
        void GenerateTree ( DirectoryLocation root,
                            bool verbose );
@@ -256,7 +257,7 @@ private:
        const Property* LookupProperty ( const std::string& name ) const;
        void SetConfigurationOption ( char* s,
                                      std::string name,
-                                     std::string* alternativeName );
+                                     std::string alternativeName );
        void SetConfigurationOption ( char* s,
                                      std::string name );
        void ReadXml ();