Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: base/third_party/xdg_mime/xdgmime.c

Issue 2755723004: base: Fix bad function pointer casts in xdg-mime. (Closed)
Patch Set: Address review comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/third_party/xdg_mime/function_casts.patch ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* -*- mode: C; c-file-style: "gnu" -*- */ 1 /* -*- mode: C; c-file-style: "gnu" -*- */
2 /* xdgmime.c: XDG Mime Spec mime resolver. Based on version 0.11 of the spec. 2 /* xdgmime.c: XDG Mime Spec mime resolver. Based on version 0.11 of the spec.
3 * 3 *
4 * More info can be found at http://www.freedesktop.org/standards/ 4 * More info can be found at http://www.freedesktop.org/standards/
5 * 5 *
6 * Copyright (C) 2003,2004 Red Hat, Inc. 6 * Copyright (C) 2003,2004 Red Hat, Inc.
7 * Copyright (C) 2003,2004 Jonathan Blandford <jrb@alum.mit.edu> 7 * Copyright (C) 2003,2004 Jonathan Blandford <jrb@alum.mit.edu>
8 * 8 *
9 * Licensed under the Academic Free License version 2.0 9 * Licensed under the Academic Free License version 2.0
10 * Or under the following terms: 10 * Or under the following terms:
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 while (list) 129 while (list)
130 { 130 {
131 next = list->next; 131 next = list->next;
132 free (list->directory_name); 132 free (list->directory_name);
133 free (list); 133 free (list);
134 list = next; 134 list = next;
135 } 135 }
136 } 136 }
137 137
138 static int 138 static int
139 xdg_mime_init_from_directory (const char *directory) 139 xdg_mime_init_from_directory (const char *directory, void *user_data)
140 { 140 {
141 char *file_name; 141 char *file_name;
142 struct stat st; 142 struct stat st;
143 143
144 assert (directory != NULL); 144 assert (directory != NULL);
145 145
146 file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1); 146 file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1);
147 strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache"); 147 strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache");
148 if (stat (file_name, &st) == 0) 148 if (stat (file_name, &st) == 0)
149 { 149 {
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 } 333 }
334 334
335 if (exists) 335 if (exists)
336 *exists = FALSE; 336 *exists = FALSE;
337 337
338 return FALSE; 338 return FALSE;
339 } 339 }
340 340
341 static int 341 static int
342 xdg_check_dir (const char *directory, 342 xdg_check_dir (const char *directory,
343 » int *invalid_dir_list) 343 » void *user_data)
344 { 344 {
345 int *invalid_dir_list = user_data;
345 int invalid, exists; 346 int invalid, exists;
346 char *file_name; 347 char *file_name;
347 348
348 assert (directory != NULL); 349 assert (directory != NULL);
349 350
350 /* Check the mime.cache file */ 351 /* Check the mime.cache file */
351 file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1); 352 file_name = malloc (strlen (directory) + strlen ("/mime/mime.cache") + 1);
352 strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache"); 353 strcpy (file_name, directory); strcat (file_name, "/mime/mime.cache");
353 invalid = xdg_check_file (file_name, &exists); 354 invalid = xdg_check_file (file_name, &exists);
354 free (file_name); 355 free (file_name);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 * Returns TRUE if they have. */ 392 * Returns TRUE if they have. */
392 static int 393 static int
393 xdg_check_dirs (void) 394 xdg_check_dirs (void)
394 { 395 {
395 XdgDirTimeList *list; 396 XdgDirTimeList *list;
396 int invalid_dir_list = FALSE; 397 int invalid_dir_list = FALSE;
397 398
398 for (list = dir_time_list; list; list = list->next) 399 for (list = dir_time_list; list; list = list->next)
399 list->checked = XDG_CHECKED_UNCHECKED; 400 list->checked = XDG_CHECKED_UNCHECKED;
400 401
401 xdg_run_command_on_dirs ((XdgDirectoryFunc) xdg_check_dir, 402 xdg_run_command_on_dirs (xdg_check_dir, &invalid_dir_list);
402 » » » &invalid_dir_list);
403 403
404 if (invalid_dir_list) 404 if (invalid_dir_list)
405 return TRUE; 405 return TRUE;
406 406
407 for (list = dir_time_list; list; list = list->next) 407 for (list = dir_time_list; list; list = list->next)
408 { 408 {
409 if (list->checked != XDG_CHECKED_VALID) 409 if (list->checked != XDG_CHECKED_VALID)
410 return TRUE; 410 return TRUE;
411 } 411 }
412 412
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 448
449 if (need_reread) 449 if (need_reread)
450 { 450 {
451 global_hash = _xdg_glob_hash_new (); 451 global_hash = _xdg_glob_hash_new ();
452 global_magic = _xdg_mime_magic_new (); 452 global_magic = _xdg_mime_magic_new ();
453 alias_list = _xdg_mime_alias_list_new (); 453 alias_list = _xdg_mime_alias_list_new ();
454 parent_list = _xdg_mime_parent_list_new (); 454 parent_list = _xdg_mime_parent_list_new ();
455 icon_list = _xdg_mime_icon_list_new (); 455 icon_list = _xdg_mime_icon_list_new ();
456 generic_icon_list = _xdg_mime_icon_list_new (); 456 generic_icon_list = _xdg_mime_icon_list_new ();
457 457
458 xdg_run_command_on_dirs ((XdgDirectoryFunc) xdg_mime_init_from_directory, 458 xdg_run_command_on_dirs (xdg_mime_init_from_directory, NULL);
459 » » » NULL);
460 459
461 need_reread = FALSE; 460 need_reread = FALSE;
462 } 461 }
463 } 462 }
464 463
465 const char * 464 const char *
466 xdg_mime_get_mime_type_for_data (const void *data, 465 xdg_mime_get_mime_type_for_data (const void *data,
467 size_t len, 466 size_t len,
468 int *result_prio) 467 int *result_prio)
469 { 468 {
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 const char * 924 const char *
926 xdg_mime_get_generic_icon (const char *mime) 925 xdg_mime_get_generic_icon (const char *mime)
927 { 926 {
928 xdg_mime_init (); 927 xdg_mime_init ();
929 928
930 if (_caches) 929 if (_caches)
931 return _xdg_mime_cache_get_generic_icon (mime); 930 return _xdg_mime_cache_get_generic_icon (mime);
932 931
933 return _xdg_mime_icon_list_lookup (generic_icon_list, mime); 932 return _xdg_mime_icon_list_lookup (generic_icon_list, mime);
934 } 933 }
OLDNEW
« no previous file with comments | « base/third_party/xdg_mime/function_casts.patch ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698