GNOME Bugzilla – Bug 80986
nautilus crashes when reordering bookmarks
Last modified: 2007-04-30 21:20:38 UTC
Package: nautilus Severity: normal Version: 1.1.14 Synopsis: nautilus crashes when reordering bookmarks Bugzilla-Product: nautilus Bugzilla-Component: Bookmarks BugBuddy-GnomeVersion: 2.0 (1.116.1) Description: Description of Problem: nautilus crashes when I try to reorder the bookmarks Steps to reproduce the problem: 1. open the bookmarks window 2. try to reorder the bookmarks 3. Actual Results: nautilus crashes Expected Results: nautilus reordering the bookmarks How often does this happen? always Additional Information: Debugging Information: Backtrace was generated from '/gnome/head/INSTALL/bin/nautilus' [New Thread 1024 (LWP 31016)] [New Thread 2049 (LWP 31017)] [New Thread 1026 (LWP 31018)] [New Thread 2051 (LWP 31019)] [New Thread 3076 (LWP 31020)] [New Thread 4101 (LWP 31021)] [New Thread 5126 (LWP 31022)] [New Thread 6151 (LWP 31023)] [New Thread 7176 (LWP 31024)] 0x40b4ba69 in wait4 () from /lib/libc.so.6
+ Trace 21805
------- Bug moved to this database by unknown@bugzilla.gnome.org 2002-05-06 19:05 ------- Unknown version 1.1.x in product nautilus. Setting version to the default, "unspecified". Reassigning to the default owner of the component, nautilus-maint@bugzilla.gnome.org.
Confirming, etc.
The crash is because there is no selected item after the drag, and nautilus fails an assertion. Whether GtkTreeView should make sure the item is selected when it is moved to its new location I don't know. I can fix the crash, but DnD of the bookmarks basically hasn't been ported to GNOME 2 yet. on_row_move() is ifdef'ed out. And to do this may require fairly big changes since GtkTreeView doesn't provide a 'row_move' signal as GtkCList did. I'll fix this next week.
Created attachment 8791 [details] [review] Patch to fix it.
Wow. The original code is just so mind-boggingly wrong i get tired just looking at it. The whole syncing the lists is just evil, it should clearly have a model based on NautilusBookmarksList. And if it had to do it this way, why not store just a pointer to the bookmark object in the list and then use gtk_tree_view_column_set_cell_data_func() to get the data from the object. *sigh* Anyway. Given the general evilness of the whole thing i think your patch is ok to check in. It's not more evil than what is already there, it cleans some stuff up, and if fixes bugs. go damon!
Patch committed. I agree using its own model would be best.
I checked out gnome cvs head today (9/6/2002) and I got a crash, please see bug 84697 for the stack trace.
Sorry to spam you, but I got a second crash. I have confirmed the bug 84697 and attached the backtrace. I got a third crash, so tell me if there is need for more backtraces.
Closing; bug 84697 is sufficient.