mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-05-19 04:01:57 +02:00
Merge branch 'gerror-improvements-mappedfile' into 'main'
mappedfile: Avoid some allocations See merge request GNOME/glib!4247
This commit is contained in:
commit
782c276d1e
@ -126,19 +126,22 @@ mapped_file_new_from_fd (int fd,
|
|||||||
|
|
||||||
if (fstat (fd, &st) == -1)
|
if (fstat (fd, &st) == -1)
|
||||||
{
|
{
|
||||||
int save_errno = errno;
|
if (error != NULL)
|
||||||
gchar *display_filename = filename ? g_filename_display_name (filename) : NULL;
|
{
|
||||||
|
int save_errno = errno;
|
||||||
|
gchar *display_filename = filename ? g_filename_display_name (filename) : NULL;
|
||||||
|
|
||||||
g_set_error (error,
|
g_set_error (error,
|
||||||
G_FILE_ERROR,
|
G_FILE_ERROR,
|
||||||
g_file_error_from_errno (save_errno),
|
g_file_error_from_errno (save_errno),
|
||||||
_("Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"),
|
_("Failed to get attributes of file “%s%s%s%s”: fstat() failed: %s"),
|
||||||
display_filename ? display_filename : "fd",
|
display_filename ? display_filename : "fd",
|
||||||
display_filename ? "' " : "",
|
display_filename ? "' " : "",
|
||||||
display_filename ? display_filename : "",
|
display_filename ? display_filename : "",
|
||||||
display_filename ? "'" : "",
|
display_filename ? "'" : "",
|
||||||
g_strerror (save_errno));
|
g_strerror (save_errno));
|
||||||
g_free (display_filename);
|
g_free (display_filename);
|
||||||
|
}
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,19 +195,22 @@ mapped_file_new_from_fd (int fd,
|
|||||||
|
|
||||||
if (file->contents == MAP_FAILED)
|
if (file->contents == MAP_FAILED)
|
||||||
{
|
{
|
||||||
int save_errno = errno;
|
if (error != NULL)
|
||||||
gchar *display_filename = filename ? g_filename_display_name (filename) : NULL;
|
{
|
||||||
|
int save_errno = errno;
|
||||||
|
gchar *display_filename = filename ? g_filename_display_name (filename) : NULL;
|
||||||
|
|
||||||
g_set_error (error,
|
g_set_error (error,
|
||||||
G_FILE_ERROR,
|
G_FILE_ERROR,
|
||||||
g_file_error_from_errno (save_errno),
|
g_file_error_from_errno (save_errno),
|
||||||
_("Failed to map %s%s%s%s: mmap() failed: %s"),
|
_("Failed to map %s%s%s%s: mmap() failed: %s"),
|
||||||
display_filename ? display_filename : "fd",
|
display_filename ? display_filename : "fd",
|
||||||
display_filename ? "' " : "",
|
display_filename ? "' " : "",
|
||||||
display_filename ? display_filename : "",
|
display_filename ? display_filename : "",
|
||||||
display_filename ? "'" : "",
|
display_filename ? "'" : "",
|
||||||
g_strerror (save_errno));
|
g_strerror (save_errno));
|
||||||
g_free (display_filename);
|
g_free (display_filename);
|
||||||
|
}
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -259,16 +265,20 @@ g_mapped_file_new (const gchar *filename,
|
|||||||
fd = g_open (filename, (writable ? O_RDWR : O_RDONLY) | _O_BINARY | O_CLOEXEC, 0);
|
fd = g_open (filename, (writable ? O_RDWR : O_RDONLY) | _O_BINARY | O_CLOEXEC, 0);
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
{
|
{
|
||||||
int save_errno = errno;
|
if (error != NULL)
|
||||||
gchar *display_filename = g_filename_display_name (filename);
|
{
|
||||||
|
int save_errno = errno;
|
||||||
|
gchar *display_filename = g_filename_display_name (filename);
|
||||||
|
|
||||||
|
g_set_error (error,
|
||||||
|
G_FILE_ERROR,
|
||||||
|
g_file_error_from_errno (save_errno),
|
||||||
|
_("Failed to open file “%s”: open() failed: %s"),
|
||||||
|
display_filename,
|
||||||
|
g_strerror (save_errno));
|
||||||
|
g_free (display_filename);
|
||||||
|
}
|
||||||
|
|
||||||
g_set_error (error,
|
|
||||||
G_FILE_ERROR,
|
|
||||||
g_file_error_from_errno (save_errno),
|
|
||||||
_("Failed to open file “%s”: open() failed: %s"),
|
|
||||||
display_filename,
|
|
||||||
g_strerror (save_errno));
|
|
||||||
g_free (display_filename);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user