diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkiconcache.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gtk/gtkiconcache.c b/gtk/gtkiconcache.c index 5175787c7..03f6f3bf4 100644 --- a/gtk/gtkiconcache.c +++ b/gtk/gtkiconcache.c @@ -24,7 +24,9 @@ #ifdef HAVE_MMAP #include <sys/mman.h> #endif - +#ifdef G_OS_WIN32 +#include <io.h> +#endif #include <sys/types.h> #include <sys/stat.h> #ifdef HAVE_UNISTD_H @@ -72,12 +74,13 @@ _gtk_icon_cache_unref (GtkIconCache *cache) GtkIconCache * _gtk_icon_cache_new_for_path (const gchar *path) { + GtkIconCache *cache = NULL; +#ifdef HAVE_MMAP gchar *cache_filename; gint fd; struct stat st; struct stat path_st; - gchar *buffer = MAP_FAILED; - GtkIconCache *cache = NULL; + gchar *buffer; if (g_getenv ("GTK_NO_ICON_CACHE")) return NULL; @@ -114,9 +117,7 @@ _gtk_icon_cache_new_for_path (const gchar *path) goto done; } -#ifdef HAVE_MMAP buffer = (gchar *) mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0); -#endif if (buffer == MAP_FAILED) goto done; @@ -125,9 +126,7 @@ _gtk_icon_cache_new_for_path (const gchar *path) if (GET_UINT16 (buffer, 0) != MAJOR_VERSION || GET_UINT16 (buffer, 2) != MINOR_VERSION) { -#ifdef HAVE_MMAP munmap (buffer, st.st_size); -#endif GTK_NOTE (ICONTHEME, g_print ("wrong cache version\n")); goto done; @@ -144,6 +143,8 @@ _gtk_icon_cache_new_for_path (const gchar *path) g_free (cache_filename); close (fd); +#endif /* HAVE_MMAP */ + return cache; } |