[nautilus-actions] Fix memory leak when selection is changed
- From: Pierre Wieser <pwieser src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Fix memory leak when selection is changed
- Date: Fri, 2 Oct 2009 22:40:18 +0000 (UTC)
commit dce78682d5dd954234dff8fd3a5f2bde7d46d425
Author: Pierre Wieser <pwieser trychlos org>
Date: Sun Sep 27 19:17:56 2009 +0200
Fix memory leak when selection is changed
ChangeLog | 6 ++++++
src/common/na-object-item.c | 9 +++++----
src/nact/nact-iactions-list.c | 5 ++---
3 files changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 45eb447..004c088 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,16 @@
2009-09-27 Pierre Wieser <pwieser trychlos org>
+ * src/common/na-object-item.c (na_object_item_remove_item):
+ Release the reference on the removed item.
+
* src/nact/nact-clipboard.c:
* src/nact/nact-clipboard.h (nact_clipboard_primary_set,
nact_clipboard_primary_get, nact_clipboard_primary_counts):
Now use the NactClipboard convenience object.
+ * src/nact/nact-iactions-list.c (on_treeview_selection_changed):
+ Only get selected items when about to send the message.
+
* src/nact/nact-main-menubar.c:
Now use the NactClipboard convenience object.
diff --git a/src/common/na-object-item.c b/src/common/na-object-item.c
index 211d026..1f7b60a 100644
--- a/src/common/na-object-item.c
+++ b/src/common/na-object-item.c
@@ -589,8 +589,8 @@ na_object_item_free_items( GList *items )
for( it = items ; it ; it = it->next ){
if( G_IS_OBJECT( it->data )){
g_object_unref( it->data );
- } else {
- g_warning( "na_object_item_free_items: %p not an object", ( void * ) it->data );
+ /*} else {
+ g_warning( "na_object_item_free_items: %p not an object", ( void * ) it->data );*/
}
}
@@ -803,6 +803,7 @@ na_object_item_remove_item( NAObjectItem *item, const NAObject *object )
if( g_list_find( item->private->items, ( gconstpointer ) object )){
item->private->items = g_list_remove( item->private->items, ( gconstpointer ) object );
+ g_object_unref(( gpointer ) object );
}
}
}
@@ -828,8 +829,8 @@ object_dump( const NAObject *item )
( void * ) NA_OBJECT_ITEM( item )->private->items );
/* do not recurse here, as this is actually dealt with by
- * na_object_dump() api ;
- * else, we would have the action being dumped after its childs
+ * na_object_dump() api ; else, we would have the action body
+ * being dumped after its childs
*/
}
}
diff --git a/src/nact/nact-iactions-list.c b/src/nact/nact-iactions-list.c
index cbda05d..b347538 100644
--- a/src/nact/nact-iactions-list.c
+++ b/src/nact/nact-iactions-list.c
@@ -1429,10 +1429,9 @@ on_treeview_selection_changed( GtkTreeSelection *selection, NactIActionsList *in
{
GList *selected_items;
- selected_items = nact_iactions_list_get_selected_items( instance );
- g_debug( "on_treeview_selection_changed: selection=%p (%d items)", ( void * ) selected_items, g_list_length( selected_items ));
-
if( is_selection_changed_authorized( instance )){
+ selected_items = nact_iactions_list_get_selected_items( instance );
+ g_debug( "on_treeview_selection_changed: selection=%p (%d items)", ( void * ) selected_items, g_list_length( selected_items ));
g_signal_emit_by_name( instance, IACTIONS_LIST_SIGNAL_SELECTION_CHANGED, selected_items );
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]