2005-08-22 Mark McLoughlin * configure.in: Version 2.11.92. 2005-08-22 Mark McLoughlin Based on patch from Chris Lahey in bug #313899 * libmenu/entry-directories.c: (get_desktop_file_id_from_path): pass the DesktopEntryType instead of using EntryDirectory:entry_type which may be DESKTOP_ENTRY_INVALID with (entry_directory_foreach_recursive), (entry_directory_get_flat_contents): pass the appropriate entry type. 2005-08-18 Mark McLoughlin Patch from Federic Crozat * libmenu/entry-directories.c: (cached_dir_remove_reference): Fix infinite loop. 2005-08-18 Mark McLoughlin Fixes "duplicate entry" issue in bug #313624 * libmenu/entry-directories.c: (handle_cached_dir_changed): Look up the CachedDir for the parent of whatever path we're being notified about - we could be getting notified about ourself being created/deleted. 2005-08-18 Mark McLoughlin Obfuscate this code some more. Basic issue is that if an EntryDirectory has a subdir which is also an EntryDirectory and the subdir gets deleted, then the CachedDir for the subdir gets freed leaving us with a dangling reference in the EntryDirectory. * libmenu/entry-directories.c: (cached_dir_find_relative_path), (cached_dir_lookup): remove infinite loop code path. (cached_dir_add_subdir): if the subdir already exists but is deleted, just undelete it. (cached_dir_remove_subdir): if the subdir is referenced by an EntryDirectory, just mark it as deleted and don't free it. (cached_dir_add_reference), (cached_dir_remove_reference): keep track of how many EntryDirectories reference a CachedDir. If the count falls to zero and the CachedDir is marked as deleted, free it. (entry_directory_new_full): add a reference here. (entry_directory_unref): remove it here. (entry_directory_foreach_recursive), (entry_directory_get_flat_contents): don't list the contents of a dir if its marked as deleted. 2005-08-17 Mark McLoughlin * libmenu/entry-directories.c: (cached_dir_clear_entries), (cached_dir_clear_subdirs): remove (cached_dir_free): free the subdirs and entries directly here. (cached_dir_load_entries_recursive): no need to free the entries here - there shouldn't be any at this point. (cached_dir_load): remove. (entry_directory_new_full): lookup and load the CachedDir directly here. 2005-08-17 Mark McLoughlin * libmenu/entry-directories.c: (cached_dir_get_full_path), (cached_dir_ensure_loaded), (cached_dir_get_subdirs), (cached_dir_get_entries): remove all this code. (entry_directory_foreach_recursive), (entry_directory_get_flat_contents): directly reference a CachedDir's subdirs and entries lists since we can be sure they're always already loaded - they get loaded in entry_directory_new_full() 2005-08-14 Elijah Newren * libmenu/menu-monitor.c: Pull menu_monitor_notify_ref() and menu_monitor_notify_unref() out of the #ifdef HAVE_FAM to fix a compilation issue. 2005-08-14 Mark McLoughlin * simple-editor/GMenuSimpleEditor/main.py: Fix a python syntax warning. 2005-08-12 Mark McLoughlin Fixes bug #313232 - memory corruption issue where notifies were being removed from under us as we walked the list of notifies. * libmenu/menu-monitor.c: (menu_monitor_notify_ref), (menu_monitor_notify_unref): make MenuMonitorNotify refcounted. (menu_monitor_add_notify): set initial refcount. (menu_monitor_remove_notify): when removing the notify, unset the callback pointer and unref. (invoke_notifies): make a copy of the notifies list and ref each notify before invoking the callbacks - callbacks may cause arbitrary notifies to be removed as we walk the list. (menu_monitor_unref): unref each of the notifies rather than freeing them. 2005-08-09 Mark McLoughlin * configure.in: post-release bump to 2.11.92. ==================== 2.11.91 ====================