diff --git a/lexer/theme-lexer.l b/lexer/theme-lexer.l index 23abab2b..de7e9d26 100644 --- a/lexer/theme-lexer.l +++ b/lexer/theme-lexer.l @@ -726,6 +726,7 @@ if ( queue == NULL ) { if ( po->type == PT_STRING_ALLOC ) { g_free( po->malloc_str); } + g_free ( po->filename ); g_free ( po ); } po = g_queue_peek_head ( file_queue ); @@ -874,6 +875,7 @@ gboolean rofi_theme_parse_file ( const char *file ) if ( po->type == PT_STRING_ALLOC ) { g_free( po->malloc_str); } + g_free ( po->filename ); g_free ( po ); } } @@ -910,6 +912,7 @@ gboolean rofi_theme_parse_string ( const char *string ) if ( po->type == PT_STRING_ALLOC ) { g_free( po->malloc_str); } + g_free ( po->filename ); g_free ( po ); } } diff --git a/lexer/theme-parser.y b/lexer/theme-parser.y index cdef6421..74efeb53 100644 --- a/lexer/theme-parser.y +++ b/lexer/theme-parser.y @@ -322,6 +322,7 @@ t_main ThemeWidget *d = $2->widgets[i]; rofi_theme_parse_merge_widgets(rofi_theme, d); } + rofi_theme_free ( $2 ); } ; @@ -392,6 +393,7 @@ t_entry_list: ThemeWidget *d = $9->widgets[i]; rofi_theme_parse_merge_widgets(widget, d); } + g_free ( $4 ); g_free ( name ); } | t_entry_list T_MEDIA T_PARENT_LEFT T_STRING T_PSEP T_DOUBLE T_PARENT_RIGHT T_BOPEN t_entry_list T_BCLOSE { @@ -405,6 +407,7 @@ t_entry_list: ThemeWidget *d = $9->widgets[i]; rofi_theme_parse_merge_widgets(widget, d); } + g_free ( $4 ); g_free ( name ); } | t_entry_list T_MEDIA T_PARENT_LEFT T_STRING T_PSEP T_INT T_UNIT_PX T_PARENT_RIGHT T_BOPEN t_entry_list T_BCLOSE { @@ -418,6 +421,7 @@ t_entry_list: ThemeWidget *d = $10->widgets[i]; rofi_theme_parse_merge_widgets(widget, d); } + g_free ( $4 ); g_free ( name ); } ; diff --git a/source/dialogs/drun.c b/source/dialogs/drun.c index d79cf677..2c474d86 100644 --- a/source/dialogs/drun.c +++ b/source/dialogs/drun.c @@ -1259,6 +1259,7 @@ static void drun_mode_destroy(Mode *sw) { g_free(rmpd->old_completer_input); g_free(rmpd->old_input); mode_destroy(rmpd->completer); + g_free(rmpd->completer); g_strfreev(rmpd->current_desktop_list); g_strfreev(rmpd->show_categories); diff --git a/source/dialogs/filebrowser.c b/source/dialogs/filebrowser.c index e4e0d68e..3a90d272 100644 --- a/source/dialogs/filebrowser.c +++ b/source/dialogs/filebrowser.c @@ -300,6 +300,7 @@ static void get_file_browser(Mode *sw) { } closedir(dir); } + g_free(cdir); g_qsort_with_data(pd->array, pd->array_length, sizeof(FBFile), compare, NULL); } diff --git a/source/dialogs/run.c b/source/dialogs/run.c index b0844c1c..58c31b98 100644 --- a/source/dialogs/run.c +++ b/source/dialogs/run.c @@ -401,6 +401,7 @@ static void run_mode_destroy(Mode *sw) { g_free(rmpd->old_input); g_free(rmpd->old_completer_input); mode_destroy(rmpd->completer); + g_free(rmpd->completer); g_free(rmpd); sw->private_data = NULL; }