[glib/nacho/off_t: 1/2] giowin32: use gint64 and _lseeki64




commit 08017c0d6cb4f6dcaa0a5f9e12240cbe9762879b
Author: Ignacio Casal Quinteiro <qignacio amazon com>
Date:   Thu Jan 20 11:07:20 2022 +0100

    giowin32: use gint64 and _lseeki64
    
    off_t on windows is 32bit which means that it will not be able
    to handle big offsets

 glib/giowin32.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)
---
diff --git a/glib/giowin32.c b/glib/giowin32.c
index 6afd48e61..72cd9220c 100644
--- a/glib/giowin32.c
+++ b/glib/giowin32.c
@@ -1291,8 +1291,7 @@ g_io_win32_fd_seek (GIOChannel *channel,
 {
   GIOWin32Channel *win32_channel = (GIOWin32Channel *)channel;
   int whence, errsv;
-  off_t tmp_offset;
-  off_t result;
+  gint64 result;
   
   switch (type)
     {
@@ -1311,16 +1310,7 @@ g_io_win32_fd_seek (GIOChannel *channel,
       g_abort ();
     }
 
-  tmp_offset = offset;
-  if (tmp_offset != offset)
-    {
-      g_set_error_literal (err, G_IO_CHANNEL_ERROR,
-                           g_io_channel_error_from_errno (EINVAL),
-                           g_strerror (EINVAL));
-      return G_IO_STATUS_ERROR;
-    }
-
-  result = lseek (win32_channel->fd, tmp_offset, whence);
+  result = _lseeki64 (win32_channel->fd, offset, whence);
   errsv = errno;
   
   if (result < 0)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]