Make mapping of empty files work. (#321530)

2005-12-03  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmappedfile.c: Make mapping of empty files
        work.  (#321530)
This commit is contained in:
Matthias Clasen 2005-12-03 06:44:02 +00:00 committed by Matthias Clasen
parent 9f4e58980d
commit d87c91a396
4 changed files with 23 additions and 3 deletions

View File

@ -1,5 +1,8 @@
2005-12-03 Matthias Clasen <mclasen@redhat.com>
* glib/gmappedfile.c: Make mapping of empty files
work. (#321530)
* glib/gfileutils.c: Don't fork a new process just to
fix the permissions of the created temp file. (#321318,
Alexis S. L. Carvalho)

View File

@ -1,5 +1,8 @@
2005-12-03 Matthias Clasen <mclasen@redhat.com>
* glib/gmappedfile.c: Make mapping of empty files
work. (#321530)
* glib/gfileutils.c: Don't fork a new process just to
fix the permissions of the created temp file. (#321318,
Alexis S. L. Carvalho)

View File

@ -1,5 +1,8 @@
2005-12-03 Matthias Clasen <mclasen@redhat.com>
* glib/gmappedfile.c: Make mapping of empty files
work. (#321530)
* glib/gfileutils.c: Don't fork a new process just to
fix the permissions of the created temp file. (#321318,
Alexis S. L. Carvalho)

View File

@ -137,6 +137,14 @@ g_mapped_file_new (const gchar *filename,
goto out;
}
if (st.st_size == 0)
{
file->length = 0;
file->contents = "";
close (fd);
return file;
}
file->contents = MAP_FAILED;
#ifdef HAVE_MMAP
@ -251,13 +259,16 @@ g_mapped_file_free (GMappedFile *file)
{
g_return_if_fail (file != NULL);
if (file->length)
{
#ifdef HAVE_MMAP
munmap (file->contents, file->length);
munmap (file->contents, file->length);
#endif
#ifdef G_OS_WIN32
UnmapViewOfFile (file->contents);
CloseHandle (file->mapping);
UnmapViewOfFile (file->contents);
CloseHandle (file->mapping);
#endif
}
g_free (file);
}