mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-11 03:10:09 +00:00
gtkiconcache: Use g_stat instead of fstat
stat/fstat aren't compatible with GStatBuf on Windows in all cases. Since we don't really need the file descriptor anyway here replace it with a g_stat call. This fixes a compiler warning with 64bit mingw. And lets us remove this scary ifdeffery.
This commit is contained in:
parent
c07ae5806e
commit
e7c9e2060c
@ -81,7 +81,6 @@ gtk_icon_cache_new_for_path (const gchar *path)
|
||||
GMappedFile *map;
|
||||
|
||||
gchar *cache_filename;
|
||||
gint fd = -1;
|
||||
GStatBuf st;
|
||||
GStatBuf path_st;
|
||||
|
||||
@ -93,24 +92,7 @@ gtk_icon_cache_new_for_path (const gchar *path)
|
||||
if (g_stat (path, &path_st) < 0)
|
||||
goto done;
|
||||
|
||||
/* Open the file and map it into memory */
|
||||
fd = g_open (cache_filename, O_RDONLY|_O_BINARY, 0);
|
||||
|
||||
if (fd < 0)
|
||||
goto done;
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
|
||||
/* Bug 660730: _fstat32 is only defined in msvcrt80.dll+/VS 2005+ */
|
||||
/* or possibly in the msvcrt.dll linked to by the Windows DDK */
|
||||
/* (will need to check on the Windows DDK part later) */
|
||||
#if ((defined (_MSC_VER) && (_MSC_VER >= 1400 || __MSVCRT_VERSION__ >= 0x0800)) || defined (__MINGW64_VERSION_MAJOR)) && !defined(_WIN64)
|
||||
#undef fstat /* Just in case */
|
||||
#define fstat _fstat32
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (fstat (fd, &st) < 0 || st.st_size < 4)
|
||||
if (g_stat (cache_filename, &st) < 0 || st.st_size < 4)
|
||||
goto done;
|
||||
|
||||
/* Verify cache is uptodate */
|
||||
@ -154,8 +136,6 @@ gtk_icon_cache_new_for_path (const gchar *path)
|
||||
|
||||
done:
|
||||
g_free (cache_filename);
|
||||
if (fd >= 0)
|
||||
close (fd);
|
||||
|
||||
return cache;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user