CVSROOT:        /cvs/gnome
Module name:    gnome-menus
Changes by:     markmc  05/04/05 17:04:46

Modified files:
        .              : ChangeLog 
        libmenu        : desktop-entries.c entry-directories.c 
                         menu-tree.c 

Log message:
2005-04-05  Mark McLoughlin  <[EMAIL PROTECTED]>

Fix memory leaks on reload - bug #172472 
[http://bugzilla.gnome.org/show_bug.cgi?id=172472]. Basically,
because of a cyclic reference we were leaking the entire
tree every time we reloaded.

* libmenu/menu-tree.c:
(menu_tree_item_set_parent): add.
(menu_tree_directory_finalize): unset the parent reference
on all items before unreffing them.
(menu_tree_directory_new), (menu_tree_separator_new),
(menu_tree_header_new), (menu_tree_alias_new),
(menu_tree_entry_new): don't take a ref on the parent.
(menu_tree_item_unref_and_unset_parent): helper function.
(process_layout), (process_only_unallocated),
(merge_subdir), (process_layout_info):
update the parent reference on items when deleting them
or moving them between directories.

* libmenu/desktop-entries.c: (desktop_entry_reload): add debug.

* libmenu/entry-directories.c: (cached_dir_update_entry): don't
unref the entry if reloading fails - desktop_entry_reload ()
does that.

URL : 
http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=&dir=gnome-menus&who=markmc&date=explicit&mindate=2005-04-05%2017:03&maxdate=2005-04-05%2017:05

_______________________________________________
cvs-commits-list mailing list
cvs-commits-list@gnome.org
http://mail.gnome.org/mailman/listinfo/cvs-commits-list

Reply via email to