Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dliang
nautilus
nautilus-226481-change-dummy-row.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File nautilus-226481-change-dummy-row.diff of Package nautilus
2006-12-19 Federico Mena Quintero <federico@novell.com> Fix https://bugzilla.novell.com/show_bug.cgi?id=226481 - crash when the dummy row gets removed. * src/file-manager/fm-list-model.c (change_dummy_row_callback): Merge patch from http://bugzilla.gnome.org/show_bug.cgi?id=336051. See if the dummy row got removed before trying to update it. --- nautilus/src/file-manager/fm-list-model.c 2006-12-19 11:15:08.000000000 -0600 +++ nautilus/src/file-manager/fm-list-model.c 2006-12-19 11:34:59.000000000 -0600 @@ -1542,33 +1542,40 @@ change_dummy_row_callback (gpointer call struct ChangeDummyData *data; data = callback_data; + model = data->model; - if (data->model != NULL) { - model = data->model; - - parent_ptr = g_hash_table_lookup (model->details->reverse_map, - data->file); - file_entry = g_sequence_get (parent_ptr); + if (model == NULL || model->details->reverse_map == NULL) { + goto out; + } - file_entry->loaded = 1; - files = file_entry->files; + parent_ptr = g_hash_table_lookup (model->details->reverse_map, + data->file); + if (parent_ptr == NULL) { + goto out; + } + + file_entry = g_sequence_get (parent_ptr); + + file_entry->loaded = 1; + files = file_entry->files; - if (g_sequence_get_length (files) == 1) { - dummy_ptr = g_sequence_get_iter_at_pos (file_entry->files, 0); - dummy_entry = g_sequence_get (dummy_ptr); - if (dummy_entry->file == NULL) { - /* was the dummy file */ + if (g_sequence_get_length (files) == 1) { + dummy_ptr = g_sequence_get_iter_at_pos (file_entry->files, 0); + dummy_entry = g_sequence_get (dummy_ptr); + if (dummy_entry->file == NULL) { + /* was the dummy file */ - iter.stamp = model->details->stamp; - iter.user_data = dummy_ptr; + iter.stamp = model->details->stamp; + iter.user_data = dummy_ptr; - path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter); - gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); - gtk_tree_path_free (path); - } + path = gtk_tree_model_get_path (GTK_TREE_MODEL (model), &iter); + gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter); + gtk_tree_path_free (path); } } + out: + eel_remove_weak_pointer (&data->model); nautilus_file_unref (data->file); g_free (data);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor