]> granicus.if.org Git - transmission/commitdiff
fix a couple more minor leaks
authorCharles Kerr <charles@transmissionbt.com>
Thu, 17 Apr 2008 19:54:22 +0000 (19:54 +0000)
committerCharles Kerr <charles@transmissionbt.com>
Thu, 17 Apr 2008 19:54:22 +0000 (19:54 +0000)
gtk/dialogs.c
gtk/makemeta-ui.c
libtransmission/makemeta.c
libtransmission/platform.c
libtransmission/session.c

index adcc3d20a170823d93d32e7723937a86b90ff34c..afc568bd626e71e14538745299832dc015869741 100644 (file)
@@ -152,6 +152,7 @@ removeTorrents( struct DeleteData * data )
     for( l=data->torrents; l!=NULL; l=l->next )
         tr_core_remove_torrent( data->core, l->data, data->delete_files );
     g_slist_free( data->torrents );
+    data->torrents = NULL;
 }
 
 
@@ -166,6 +167,7 @@ removeResponse( GtkDialog * dialog, gint response, gpointer gdata )
         g_slist_foreach( data->torrents, (GFunc)g_object_unref, NULL );
 
     gtk_widget_destroy( GTK_WIDGET( dialog ) );
+    g_slist_free( data->torrents );
     g_free( data );
 }
 
index 2d724f038ec07dcb68378b701e6bd09ab2584bc7..93f24b525b283bd063742cc61ebf132b625a8abd 100644 (file)
@@ -44,7 +44,7 @@ MakeMetaUI;
 static void
 freeMetaUI( gpointer p )
 {
-    MakeMetaUI * ui = (MakeMetaUI *) p;
+    MakeMetaUI * ui = p;
     tr_metaInfoBuilderFree( ui->builder );
     memset( ui, ~0, sizeof(MakeMetaUI) );
     g_free( ui );
index e8a16ad3a720c30bb970f205ac24676f42480fae..6f4e900db257f71735876e5ac8b9e73868235423 100644 (file)
@@ -167,7 +167,7 @@ tr_metaInfoBuilderCreate( tr_handle * handle, const char * topFile )
 void
 tr_metaInfoBuilderFree( tr_metainfo_builder * builder )
 {
-    if( builder != NULL )
+    if( builder )
     {
         uint32_t i;
         for( i=0; i<builder->fileCount; ++i )
@@ -482,6 +482,12 @@ tr_makeMetaInfo( tr_metainfo_builder  * builder,
 {
     tr_lock * lock;
 
+    /* free any variables from a previous run */
+    tr_free( builder->announce );
+    tr_free( builder->comment );
+    tr_free( builder->outputFile );
+
+    /* initialize the builder variables */
     builder->abortFlag = 0;
     builder->isDone = 0;
     builder->announce = tr_strdup( announce );
index 09aaab2e9c7fa6ef8c1b20ae4d2dece0bdeb58de..c5e443a04ff9097e730ded4a34f61a9a3b21b8d0 100644 (file)
@@ -474,7 +474,6 @@ tr_getConfigDir( const tr_handle * handle )
     return handle->configDir;
 }
 
-
 const char *
 tr_getTorrentDir( const tr_handle * handle )
 {
index a51f33d71efced0d383ebd8889fb26d79eca3c12..a94326c5579700ed0236aafead41ab598a40392c 100644 (file)
@@ -415,6 +415,7 @@ deadlineReached( const uint64_t deadline )
 void
 tr_close( tr_handle * h )
 {
+    int i;
     const int maxwait_msec = SHUTDOWN_MAX_SECONDS * 1000;
     const uint64_t deadline = tr_date( ) + maxwait_msec;
 
@@ -430,6 +431,9 @@ tr_close( tr_handle * h )
 
     tr_fdClose( );
     tr_lockFree( h->lock );
+    for( i=0; i<h->metainfoLookupCount; ++i )
+        tr_free( h->metainfoLookup[i].filename );
+    tr_free( h->metainfoLookup );
     tr_free( h->tag );
     tr_free( h->configDir );
     tr_free( h->resumeDir );