[anjuta] dir-project: Removing an node in a sub directory was crashing Anjuta
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] dir-project: Removing an node in a sub directory was crashing Anjuta
- Date: Mon, 20 Feb 2012 19:58:00 +0000 (UTC)
commit 0d1810fc66ce0e8ffa090ed4797c3f5afac0be17
Author: SÃbastien Granjoux <seb sfo free fr>
Date: Mon Feb 20 20:51:11 2012 +0100
dir-project: Removing an node in a sub directory was crashing Anjuta
plugins/dir-project/dir-project.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
---
diff --git a/plugins/dir-project/dir-project.c b/plugins/dir-project/dir-project.c
index 5895e95..5587f95 100644
--- a/plugins/dir-project/dir-project.c
+++ b/plugins/dir-project/dir-project.c
@@ -556,6 +556,8 @@ dir_project_load_directory_callback (GObject *source_object,
infos = g_file_enumerator_next_files_finish (enumerator, res, &err);
if (infos == NULL) {
+ GList *removed = NULL;
+
/* either we are finished or an error occured */
anjuta_project_node_clear_state (data->parent, ANJUTA_PROJECT_LOADING);
if (err != NULL) {
@@ -578,11 +580,13 @@ dir_project_load_directory_callback (GObject *source_object,
g_free (uri);
anjuta_project_node_remove (remove);
- g_object_unref (remove);
+ removed = g_list_prepend (removed, remove);
}
}
g_signal_emit_by_name (data->proj, "node-loaded", data->parent, NULL);
}
+ g_list_foreach (removed, (GFunc)g_object_unref, NULL);
+ g_list_free (removed);
g_object_unref (data->parent);
g_slice_free (DirData, data);
g_object_unref (enumerator);
@@ -950,7 +954,7 @@ iproject_add_node_after (IAnjutaProject *obj, AnjutaProjectNode *parent, AnjutaP
anjuta_project_node_set_state (node, ANJUTA_PROJECT_MODIFIED);
anjuta_project_node_insert_after (parent, sibling, node);
- g_signal_emit_by_name (obj, "node-modified", node, NULL);
+ g_signal_emit_by_name (obj, "node-changed", node, NULL);
return node;
}
@@ -959,7 +963,7 @@ static gboolean
iproject_remove_node (IAnjutaProject *obj, AnjutaProjectNode *node, GError **err)
{
anjuta_project_node_set_state (node, ANJUTA_PROJECT_REMOVED);
- g_signal_emit_by_name (obj, "node-modified", node, NULL);
+ g_signal_emit_by_name (obj, "node-changed", node, NULL);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]