diff --git a/src/highlighting.c b/src/highlighting.c index 03846b1c9..bbaf9b6f1 100644 --- a/src/highlighting.c +++ b/src/highlighting.c @@ -58,7 +58,7 @@ #define GEANY_WHITESPACE_CHARS " \t" "!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~" -static gchar *whitespace_chars; +static gchar *whitespace_chars = NULL; typedef struct @@ -112,7 +112,7 @@ static struct gint fold_draw_line; gchar *wordchars; -} common_style_set; +} common_style_set = { { { 0 } }, 0, 0, 0, NULL }; /* For filetypes.common [named_styles] section. @@ -577,7 +577,9 @@ static void styleset_common_init(GKeyFile *config, GKeyFile *config_home) get_keyfile_int(config, config_home, "styling", "line_height", 0, 0, &common_style_set.styling[GCS_LINE_HEIGHT]); + g_free(common_style_set.wordchars); get_keyfile_wordchars(config, config_home, &common_style_set.wordchars); + g_free(whitespace_chars); whitespace_chars = get_keyfile_whitespace_chars(config, config_home); } diff --git a/src/keyfile.c b/src/keyfile.c index 84e32eab5..1cffe0090 100644 --- a/src/keyfile.c +++ b/src/keyfile.c @@ -673,7 +673,11 @@ void configuration_load_session_files(GKeyFile *config, gboolean read_recent_fil /* the project may load another list than the main setting */ if (session_files != NULL) + { + foreach_ptr_array(tmp_array, i, session_files) + g_strfreev(tmp_array); g_ptr_array_free(session_files, TRUE); + } session_files = g_ptr_array_new(); have_session_files = TRUE; diff --git a/src/project.c b/src/project.c index b66e3aba6..202a8b062 100644 --- a/src/project.c +++ b/src/project.c @@ -440,6 +440,7 @@ static void destroy_project(gboolean open_default) g_free(app->project->description); g_free(app->project->file_name); g_free(app->project->base_path); + g_strfreev(app->project->file_patterns); g_free(app->project); app->project = NULL; @@ -813,7 +814,7 @@ static gboolean update_config(const PropertyDialogElements *e, gboolean new_proj buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->description)); gtk_text_buffer_get_start_iter(buffer, &start); gtk_text_buffer_get_end_iter(buffer, &end); - SETPTR(p->description, g_strdup(gtk_text_buffer_get_text(buffer, &start, &end, FALSE))); + SETPTR(p->description, gtk_text_buffer_get_text(buffer, &start, &end, FALSE)); foreach_slist(node, stash_groups) stash_group_update(node->data, e->dialog);