mirror of https://github.com/GNOME/gimp.git
Issue #9994: do not call g_file_info_get_is_hidden() (and others) directly.
This is not the main reason for the specific output in #9994. These ones are more probably because of similar usage in GTK (which updated its own calls to g_file_info_get_is_hidden|backup() in version 3.24.38). But we should likely also update the various calls we have to use the generic g_file_info_get_attribute_*() variants. To be fair, it is unclear to me when we can be sure that an attribute is set. For instance, when we call g_file_enumerate_children() or g_file_query_info() with specific attributes, docs say that it is still possible for these attributes to not be set. So I assume it means we should never use direct accessor functions. The only exception is that I didn't remove usage of g_file_info_get_name(), since its docs says: > * Gets a display name for a file. This is guaranteed to always be set. Even though it also says just after: > * It is an error to call this if the #GFileInfo does not contain > * %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME. Which is very contradictory. But assuming that this error warning was over-zealous documentation, I kept the direct accessors since they are supposed to be slightly more optimized (still according to in-code documentation) so let's priorize them when we know they are set for sure.
This commit is contained in:
parent
d928bd2c93
commit
231ca0c505
|
@ -730,7 +730,7 @@ gimp_file_is_executable (GFile *file)
|
|||
|
||||
if (info)
|
||||
{
|
||||
GFileType file_type = g_file_info_get_file_type (info);
|
||||
GFileType file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
const gchar *filename = g_file_info_get_name (info);
|
||||
|
||||
if (file_type == G_FILE_TYPE_REGULAR &&
|
||||
|
|
|
@ -382,13 +382,13 @@ gimp_data_loader_factory_load_directory (GimpDataFactory *factory,
|
|||
GFileType file_type;
|
||||
GFile *child;
|
||||
|
||||
if (g_file_info_get_is_hidden (info))
|
||||
if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
g_object_unref (info);
|
||||
continue;
|
||||
}
|
||||
|
||||
file_type = g_file_info_get_file_type (info);
|
||||
file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
child = g_file_enumerator_get_child (enumerator, info);
|
||||
|
||||
if (file_type == G_FILE_TYPE_DIRECTORY)
|
||||
|
|
|
@ -1018,7 +1018,7 @@ gimp_extension_manager_search_directory (GimpExtensionManager *manager,
|
|||
{
|
||||
GFile *subdir;
|
||||
|
||||
if (g_file_info_get_is_hidden (info))
|
||||
if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
g_object_unref (info);
|
||||
continue;
|
||||
|
|
|
@ -452,7 +452,7 @@ gimp_imagefile_create_thumbnail (GimpImagefile *imagefile,
|
|||
G_FILE_QUERY_INFO_NONE,
|
||||
NULL, NULL);
|
||||
|
||||
regular = (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR);
|
||||
regular = (g_file_info_get_attribute_uint32 (file_info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_REGULAR);
|
||||
readable = g_file_info_get_attribute_boolean (file_info,
|
||||
G_FILE_ATTRIBUTE_ACCESS_CAN_READ);
|
||||
|
||||
|
@ -715,7 +715,7 @@ gimp_imagefile_icon_callback (GObject *source_object,
|
|||
|
||||
if (file_info)
|
||||
{
|
||||
private->icon = g_object_ref (g_file_info_get_icon (file_info));
|
||||
private->icon = g_object_ref (G_ICON (g_file_info_get_attribute_object (file_info, G_FILE_ATTRIBUTE_STANDARD_ICON)));
|
||||
g_object_unref (file_info);
|
||||
}
|
||||
|
||||
|
|
|
@ -1732,7 +1732,7 @@ gimp_palette_load_detect_format (GFile *file,
|
|||
|
||||
if (info)
|
||||
{
|
||||
goffset size = g_file_info_get_size (info);
|
||||
goffset size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
|
||||
if (size == 768)
|
||||
format = GIMP_PALETTE_FILE_FORMAT_ACT;
|
||||
|
|
|
@ -130,7 +130,7 @@ file_open_image (Gimp *gimp,
|
|||
if (! info)
|
||||
return NULL;
|
||||
|
||||
if (g_file_info_get_file_type (info) != G_FILE_TYPE_REGULAR)
|
||||
if (g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) != G_FILE_TYPE_REGULAR)
|
||||
{
|
||||
g_set_error_literal (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
||||
_("Not a regular file"));
|
||||
|
|
|
@ -134,7 +134,7 @@ file_save (Gimp *gimp,
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (g_file_info_get_file_type (info) != G_FILE_TYPE_REGULAR)
|
||||
if (g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) != G_FILE_TYPE_REGULAR)
|
||||
{
|
||||
g_set_error_literal (error, G_FILE_ERROR, G_FILE_ERROR_FAILED,
|
||||
_("Not a regular file"));
|
||||
|
|
|
@ -96,8 +96,8 @@ icon_themes_init (Gimp *gimp)
|
|||
while ((info = g_file_enumerator_next_file (enumerator,
|
||||
NULL, NULL)))
|
||||
{
|
||||
if (! g_file_info_get_is_hidden (info) &&
|
||||
g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
|
||||
if (! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
|
||||
g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_DIRECTORY)
|
||||
{
|
||||
GFile *file;
|
||||
GFile *index_theme;
|
||||
|
|
|
@ -595,7 +595,7 @@ splash_image_load_from_file (GFile *file,
|
|||
{
|
||||
const gchar *content_type;
|
||||
|
||||
content_type = g_file_info_get_content_type (info);
|
||||
content_type = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
|
||||
if (content_type)
|
||||
{
|
||||
gchar *mime_type;
|
||||
|
|
|
@ -511,8 +511,8 @@ themes_theme_paths_notify (GimpExtensionManager *manager,
|
|||
while ((info = g_file_enumerator_next_file (enumerator,
|
||||
NULL, NULL)))
|
||||
{
|
||||
if (! g_file_info_get_is_hidden (info) &&
|
||||
g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
|
||||
if (! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
|
||||
g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_DIRECTORY)
|
||||
{
|
||||
GFile *file;
|
||||
const gchar *name;
|
||||
|
|
|
@ -170,8 +170,8 @@ gimp_environ_table_load (GimpEnvironTable *environ_table,
|
|||
while ((info = g_file_enumerator_next_file (enumerator,
|
||||
NULL, NULL)))
|
||||
{
|
||||
if (! g_file_info_get_is_hidden (info) &&
|
||||
g_file_info_get_file_type (info) == G_FILE_TYPE_REGULAR)
|
||||
if (! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
|
||||
g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_REGULAR)
|
||||
{
|
||||
GFile *file = g_file_enumerator_get_child (enumerator, info);
|
||||
|
||||
|
|
|
@ -163,8 +163,8 @@ gimp_interpreter_db_load (GimpInterpreterDB *db,
|
|||
while ((info = g_file_enumerator_next_file (enumerator,
|
||||
NULL, NULL)))
|
||||
{
|
||||
if (! g_file_info_get_is_hidden (info) &&
|
||||
g_file_info_get_file_type (info) == G_FILE_TYPE_REGULAR)
|
||||
if (! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) &&
|
||||
g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_REGULAR)
|
||||
{
|
||||
GFile *file = g_file_enumerator_get_child (enumerator, info);
|
||||
|
||||
|
|
|
@ -683,7 +683,7 @@ file_check_single_magic (const gchar *offset,
|
|||
if (! info)
|
||||
return FILE_MATCH_NONE;
|
||||
|
||||
fileval = g_file_info_get_size (info);
|
||||
fileval = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
g_object_unref (info);
|
||||
}
|
||||
else if (offs >= 0 &&
|
||||
|
|
|
@ -269,7 +269,7 @@ gimp_plug_in_manager_search_directory (GimpPlugInManager *manager,
|
|||
{
|
||||
GFile *child;
|
||||
|
||||
if (g_file_info_get_is_hidden (info))
|
||||
if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
g_object_unref (info);
|
||||
continue;
|
||||
|
@ -305,7 +305,7 @@ gimp_plug_in_manager_search_directory (GimpPlugInManager *manager,
|
|||
gchar *file_name;
|
||||
char *ext;
|
||||
|
||||
if (g_file_info_get_is_hidden (info2))
|
||||
if (g_file_info_get_attribute_boolean (info2, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
g_object_unref (info2);
|
||||
continue;
|
||||
|
|
|
@ -420,13 +420,13 @@ gimp_font_factory_recursive_add_fontdir (FcConfig *config,
|
|||
GFileType file_type;
|
||||
GFile *child;
|
||||
|
||||
if (g_file_info_get_is_hidden (info))
|
||||
if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
g_object_unref (info);
|
||||
continue;
|
||||
}
|
||||
|
||||
file_type = g_file_info_get_file_type (info);
|
||||
file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
child = g_file_enumerator_get_child (enumerator, info);
|
||||
|
||||
if (file_type == G_FILE_TYPE_DIRECTORY)
|
||||
|
|
|
@ -257,7 +257,7 @@ gimp_help_get_installed_languages (void)
|
|||
while ((info = g_file_enumerator_next_file (enumerator,
|
||||
NULL, NULL)))
|
||||
{
|
||||
if (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)
|
||||
if (g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_DIRECTORY)
|
||||
{
|
||||
GFile *locale_dir;
|
||||
GFile *file;
|
||||
|
|
|
@ -338,7 +338,7 @@ gimp_image_prop_view_label_set_filesize (GtkWidget *label,
|
|||
|
||||
if (info)
|
||||
{
|
||||
goffset size = g_file_info_get_size (info);
|
||||
goffset size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
gchar *str = g_format_size (size);
|
||||
|
||||
gtk_label_set_text (GTK_LABEL (label), str);
|
||||
|
|
|
@ -216,7 +216,7 @@ gimp_color_profile_new_from_file (GFile *file,
|
|||
{
|
||||
GInputStream *input;
|
||||
|
||||
length = g_file_info_get_size (info);
|
||||
length = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
data = g_malloc (length);
|
||||
|
||||
g_object_unref (info);
|
||||
|
|
|
@ -381,10 +381,10 @@ gimp_module_db_load_directory (GimpModuleDB *db,
|
|||
|
||||
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)))
|
||||
{
|
||||
GFileType file_type = g_file_info_get_file_type (info);
|
||||
GFileType file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
|
||||
if (file_type == G_FILE_TYPE_REGULAR &&
|
||||
! g_file_info_get_is_hidden (info))
|
||||
! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
GFile *child = g_file_enumerator_get_child (enumerator, info);
|
||||
|
||||
|
|
|
@ -556,7 +556,7 @@ gimp_thumb_file_test (const gchar *filename,
|
|||
G_FILE_ATTRIBUTE_TIME_MODIFIED);
|
||||
|
||||
if (size)
|
||||
*size = g_file_info_get_size (info);
|
||||
*size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
|
||||
if (err_no)
|
||||
*err_no = 0;
|
||||
|
|
|
@ -1027,7 +1027,7 @@ get_file_info (GFile *file)
|
|||
|
||||
if (info)
|
||||
{
|
||||
size = g_file_info_get_size (info);
|
||||
size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
|
|
@ -659,7 +659,7 @@ get_file_size (GFile *file,
|
|||
NULL, error);
|
||||
if (info)
|
||||
{
|
||||
size = g_file_info_get_size (info);
|
||||
size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
|
|
@ -706,7 +706,7 @@ get_file_info (GFile *file)
|
|||
|
||||
if (info)
|
||||
{
|
||||
size = g_file_info_get_size (info);
|
||||
size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
|
|
@ -392,7 +392,7 @@ send_image (GObject *config,
|
|||
while ((info = g_file_enumerator_next_file (enumerator,
|
||||
NULL, NULL)))
|
||||
{
|
||||
if (g_file_info_get_file_type (info) == G_FILE_TYPE_REGULAR)
|
||||
if (g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE) == G_FILE_TYPE_REGULAR)
|
||||
{
|
||||
GFile *file = g_file_enumerator_get_child (enumerator, info);
|
||||
g_file_delete (file, NULL, NULL);
|
||||
|
|
|
@ -132,7 +132,7 @@ background_jpeg_save (PreviewPersistent *pp)
|
|||
|
||||
if (info)
|
||||
{
|
||||
goffset size = g_file_info_get_size (info);
|
||||
goffset size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
gchar *size_text;
|
||||
|
||||
size_text = g_format_size (size);
|
||||
|
|
|
@ -571,7 +571,7 @@ tiff_io_get_file_size (thandle_t handle)
|
|||
}
|
||||
else
|
||||
{
|
||||
size = g_file_info_get_size (info);
|
||||
size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
||||
|
|
|
@ -1110,10 +1110,10 @@ fractalexplorer_list_load_all (const gchar *explorer_path)
|
|||
|
||||
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)))
|
||||
{
|
||||
GFileType file_type = g_file_info_get_file_type (info);
|
||||
GFileType file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
|
||||
if (file_type == G_FILE_TYPE_REGULAR &&
|
||||
! g_file_info_get_is_hidden (info))
|
||||
! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
fractalexplorerOBJ *fractalexplorer;
|
||||
GFile *child;
|
||||
|
|
|
@ -1772,10 +1772,10 @@ gflares_list_load_all (void)
|
|||
|
||||
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)))
|
||||
{
|
||||
GFileType file_type = g_file_info_get_file_type (info);
|
||||
GFileType file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
|
||||
if (file_type == G_FILE_TYPE_REGULAR &&
|
||||
! g_file_info_get_is_hidden (info))
|
||||
! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
GFlare *gflare;
|
||||
GFile *child;
|
||||
|
|
|
@ -258,7 +258,7 @@ gimp_help_locale_parse (GimpHelpLocale *locale,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
size = g_file_info_get_size (info);
|
||||
size = g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_STANDARD_SIZE);
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
|
|
@ -316,11 +316,11 @@ script_fu_load_directory (GFile *directory)
|
|||
|
||||
while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)))
|
||||
{
|
||||
GFileType file_type = g_file_info_get_file_type (info);
|
||||
GFileType file_type = g_file_info_get_attribute_uint32 (info, G_FILE_ATTRIBUTE_STANDARD_TYPE);
|
||||
|
||||
if ((file_type == G_FILE_TYPE_REGULAR ||
|
||||
file_type == G_FILE_TYPE_DIRECTORY) &&
|
||||
! g_file_info_get_is_hidden (info))
|
||||
! g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN))
|
||||
{
|
||||
GFile *child = g_file_enumerator_get_child (enumerator, info);
|
||||
|
||||
|
|
Loading…
Reference in New Issue