# HG changeset patch # User ib # Date 1363800822 0 # Node ID dd2264983633dc71accf5be5b1f1dff312624558 # Parent 9f25b60fa81b9c8fe592d9f4d5f3fc31348385f9 Make fsSelectedDirectory a local variable. Additionally, avoid memory leaks by using the variable instead of calling get_current_dir_name() again and by freeing fsSelectedDirectory. diff -r 9f25b60fa81b -r dd2264983633 gui/dialog/fileselect.c --- a/gui/dialog/fileselect.c Wed Mar 20 12:18:54 2013 +0000 +++ b/gui/dialog/fileselect.c Wed Mar 20 17:33:42 2013 +0000 @@ -57,7 +57,6 @@ #endif char * fsSelectedFile = NULL; -char * fsSelectedDirectory = NULL; gchar * fsSelectedDirectoryUtf8 = NULL; unsigned char * fsThatDir = "."; const gchar * fsFilter = "*"; @@ -498,6 +497,7 @@ static void fs_Ok_released( GtkButton * button, gpointer user_data ) { + char * fsSelectedDirectory; GList * item; int i = 1, l; struct stat fs; @@ -530,7 +530,7 @@ g_free(selected); } guiInfo.NewPlay=GUI_FILE_NEW; sub_fps=0; - fs_PersistantHistory( get_current_dir_name() ); //totem, write into history + fs_PersistantHistory( fsSelectedDirectory ); break; case fsSubtitleSelector: setddup( &guiInfo.SubtitleFilename,fsSelectedDirectory,fsSelectedFile ); @@ -562,6 +562,9 @@ fsTopList_items=g_list_prepend( fsTopList_items,fsSelectedDirectoryUtf8 ); g_hash_table_insert(fsPathTable, strdup(fsSelectedDirectoryUtf8), strdup(fsSelectedDirectory)); } + + free(fsSelectedDirectory); + if ( uiLoadPlay ) { uiLoadPlay=False; uiEvent( evPlay,0 ); } else gui( GUI_SET_STATE,(void *) GUI_STOP ); }