summaryrefslogtreecommitdiff
path: root/libnautilus-extensions/nautilus-mime-actions.c
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2000-11-06 17:46:01 +0000
committerDarin Adler <darin@src.gnome.org>2000-11-06 17:46:01 +0000
commit6261ea48137d5467c624efded0786b76f3d56115 (patch)
tree7b203cdb2b5dcd9e78b5453e7f520c1a66f1046d /libnautilus-extensions/nautilus-mime-actions.c
parent1ca2c0d776bb554fa47801309f79327ab5c8129b (diff)
downloadnautilus-6261ea48137d5467c624efded0786b76f3d56115.tar.gz
Fixed bug 4504 (select "view as others" leads to core dump).
* libnautilus-extensions/nautilus-file.c: (nautilus_file_get_directory_item_mime_types): Change to return a copy of the MIME type list as designed. * libnautilus-extensions/nautilus-mime-actions.c: (nautilus_mime_get_default_component_for_file_internal), (nautilus_mime_get_short_list_components_for_file): Change the callers that don't free the MIME type list so that they now do.
Diffstat (limited to 'libnautilus-extensions/nautilus-mime-actions.c')
-rw-r--r--libnautilus-extensions/nautilus-mime-actions.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/libnautilus-extensions/nautilus-mime-actions.c b/libnautilus-extensions/nautilus-mime-actions.c
index cea9b08ea..9c9e3723f 100644
--- a/libnautilus-extensions/nautilus-mime-actions.c
+++ b/libnautilus-extensions/nautilus-mime-actions.c
@@ -418,7 +418,7 @@ nautilus_mime_get_default_component_for_file_internal (NautilusFile *file,
if (mime_default != NULL) {
default_component_string = g_strdup (mime_default->iid);
if (default_component_string != NULL) {
- /* Default component chosen based only on type. */
+ /* Default component chosen based only on type. */
used_user_chosen_info = FALSE;
}
CORBA_free (mime_default);
@@ -440,7 +440,6 @@ nautilus_mime_get_default_component_for_file_internal (NautilusFile *file,
respect the setting regardless of content type requirements */
if (metadata_default) {
extra_requirements = g_strconcat ("iid == '", default_component_string, "'", NULL);
-
info_list = nautilus_do_component_query (mime_type, uri_scheme, item_mime_types, TRUE,
explicit_iids, sort_conditions, extra_requirements, &ev);
g_free (extra_requirements);
@@ -451,19 +450,18 @@ nautilus_mime_get_default_component_for_file_internal (NautilusFile *file,
explicit_iids, sort_conditions, NULL, &ev);
}
- if (ev._major == CORBA_NO_EXCEPTION && info_list != NULL) {
+ if (info_list != NULL) {
server = OAF_ServerInfo_duplicate (info_list->data);
gnome_vfs_mime_component_list_free (info_list);
-
+
if (default_component_string != NULL && strcmp (server->iid, default_component_string) == 0) {
used_user_chosen_info = TRUE; /* Default component chosen based on user-stored . */
}
} else {
- g_assert (info_list == NULL); /* or else we are leaking it */
server = NULL;
- return NULL;
}
-
+
+ nautilus_g_list_free_deep (item_mime_types);
g_strfreev (sort_conditions);
g_free (uri_scheme);
@@ -654,6 +652,7 @@ nautilus_mime_get_short_list_components_for_file (NautilusFile *file)
g_free (extra_requirements);
}
+ nautilus_g_list_free_deep (item_mime_types);
gnome_vfs_mime_component_list_free (servers);
g_list_free (iids);
g_free (uri_scheme);