Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Sat, 08 Nov 2014 17:32:41 UTC Commit: 6a0673f4ae8d18ada42afb7f3df46929f540cc3f https://github.com/geany/geany/commit/6a0673f4ae8d18ada42afb7f3df46929f540cc...
Log Message: ----------- TM: Don't allow passing NULL to tm_workspace API
Modified Paths: -------------- src/dialogs.c src/document.c tagmanager/src/tm_workspace.c
Modified: src/dialogs.c 11 lines changed, 7 insertions(+), 4 deletions(-) =================================================================== @@ -501,10 +501,13 @@ static gboolean handle_save_as(const gchar *utf8_filename, gboolean rename_file) { document_rename_file(doc, utf8_filename); } - /* create a new tm_source_file object otherwise tagmanager won't work correctly */ - tm_workspace_remove_source_file(doc->tm_file); - tm_source_file_free(doc->tm_file); - doc->tm_file = NULL; + if (doc->tm_file) + { + /* create a new tm_source_file object otherwise tagmanager won't work correctly */ + tm_workspace_remove_source_file(doc->tm_file); + tm_source_file_free(doc->tm_file); + doc->tm_file = NULL; + } } success = document_save_file_as(doc, utf8_filename);
Modified: src/document.c 7 lines changed, 5 insertions(+), 2 deletions(-) =================================================================== @@ -714,8 +714,11 @@ static gboolean remove_page(guint page_num) g_free(doc->priv->saved_encoding.encoding); g_free(doc->file_name); g_free(doc->real_path); - tm_workspace_remove_source_file(doc->tm_file); - tm_source_file_free(doc->tm_file); + if (doc->tm_file) + { + tm_workspace_remove_source_file(doc->tm_file); + tm_source_file_free(doc->tm_file); + }
if (doc->priv->tag_tree) gtk_widget_destroy(doc->priv->tag_tree);
Modified: tagmanager/src/tm_workspace.c 13 lines changed, 8 insertions(+), 5 deletions(-) =================================================================== @@ -202,9 +202,8 @@ void tm_workspace_update_source_file_buffer(TMSourceFile *source_file, guchar* t void tm_workspace_remove_source_file(TMSourceFile *source_file) { guint i; - - if (!source_file) - return; + + g_return_if_fail(source_file != NULL);
for (i=0; i < theWorkspace->source_files->len; ++i) { @@ -270,7 +269,9 @@ static void tm_workspace_update(void) void tm_workspace_add_source_files(GPtrArray *source_files) { guint i; - + + g_return_if_fail(source_files != NULL); + for (i = 0; i < source_files->len; i++) { TMSourceFile *source_file = source_files->pdata[i]; @@ -292,7 +293,9 @@ void tm_workspace_add_source_files(GPtrArray *source_files) void tm_workspace_remove_source_files(GPtrArray *source_files) { guint i, j; - + + g_return_if_fail(source_files != NULL); + //TODO: sort both arrays by pointer value and remove in single pass for (i = 0; i < source_files->len; i++) {
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).