]>
Commit | Line | Data |
---|---|---|
055c2946 | 1 | =================================================================== |
2 | RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-mime-info-cache.c,v | |
3 | retrieving revision 1.21 | |
4 | retrieving revision 1.21.2.2 | |
5 | diff -u -r1.21 -r1.21.2.2 | |
6 | --- gnome-vfs-mime-info-cache.c 2006/03/02 17:04:31 1.21 | |
7 | +++ gnome-vfs/libgnomevfs/gnome-vfs-mime-info-cache.c 2006/05/14 10:07:31 1.21.2.2 | |
8 | @@ -56,6 +56,8 @@ | |
9 | guint should_ping_mime_monitor : 1; | |
10 | } GnomeVFSMimeInfoCache; | |
11 | ||
12 | +G_LOCK_EXTERN (gnome_vfs_mime_mutex); | |
13 | + | |
14 | extern void _gnome_vfs_mime_monitor_emit_data_changed (GnomeVFSMIMEMonitor *monitor); | |
15 | extern void _gnome_vfs_mime_info_cache_init (void); | |
16 | ||
17 | @@ -180,6 +182,8 @@ | |
18 | if (load_error != NULL) | |
19 | goto error; | |
20 | ||
21 | + G_LOCK (gnome_vfs_mime_mutex); | |
22 | + | |
23 | for (i = 0; mime_types[i] != NULL; i++) { | |
24 | gchar **desktop_file_ids; | |
25 | desktop_file_ids = g_key_file_get_string_list (key_file, | |
26 | @@ -195,12 +199,14 @@ | |
27 | } | |
28 | ||
29 | gnome_vfs_mime_info_cache_dir_add_desktop_entries (dir, | |
30 | - mime_types[i], | |
31 | + xdg_mime_unalias_mime_type (mime_types[i]), | |
32 | desktop_file_ids); | |
33 | ||
34 | g_strfreev (desktop_file_ids); | |
35 | } | |
36 | ||
37 | + G_UNLOCK (gnome_vfs_mime_mutex); | |
38 | + | |
39 | g_strfreev (mime_types); | |
40 | g_key_file_free (key_file); | |
41 | ||
42 | @@ -270,6 +276,8 @@ | |
43 | if (load_error != NULL) | |
44 | goto error; | |
45 | ||
46 | + G_LOCK (gnome_vfs_mime_mutex); | |
47 | + | |
48 | for (i = 0; mime_types[i] != NULL; i++) { | |
49 | desktop_file_ids = g_key_file_get_string_list (key_file, | |
50 | "Default Applications", | |
51 | @@ -283,10 +291,12 @@ | |
52 | } | |
53 | ||
54 | g_hash_table_replace (dir->defaults_list_map, | |
55 | - g_strdup (mime_types[i]), | |
56 | + g_strdup (xdg_mime_unalias_mime_type (mime_types[i])), | |
57 | desktop_file_ids); | |
58 | } | |
59 | ||
60 | + G_UNLOCK (gnome_vfs_mime_mutex); | |
61 | + | |
62 | g_strfreev (mime_types); | |
63 | g_key_file_free (key_file); | |
64 | ||
65 | @@ -682,6 +692,8 @@ | |
66 | GList *l = NULL; | |
67 | int i; | |
68 | ||
69 | + G_LOCK (gnome_vfs_mime_mutex); | |
70 | + | |
71 | umime = xdg_mime_unalias_mime_type (mime_type); | |
72 | l = g_list_prepend (l, g_strdup (umime)); | |
73 | ||
74 | @@ -690,6 +702,8 @@ | |
75 | for (i = 0; parents && parents[i] != NULL; i++) { | |
76 | l = g_list_prepend (l, g_strdup (parents[i])); | |
77 | } | |
78 | + | |
79 | + G_UNLOCK (gnome_vfs_mime_mutex); | |
80 | ||
81 | return g_list_reverse (l); | |
82 | } |