Alexandre Julliard : ntdll: Avoid using Low/ HighPart of a large integer when not necessary.

Alexandre Julliard julliard at winehq.org
Tue Oct 30 13:27:35 CDT 2012


Module: wine
Branch: master
Commit: aacc450955ed5871e3ef68346fec2467c785799e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=aacc450955ed5871e3ef68346fec2467c785799e

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Oct 30 11:43:05 2012 +0100

ntdll: Avoid using Low/HighPart of a large integer when not necessary.

---

 dlls/ntdll/cdrom.c |    8 +++-----
 dlls/ntdll/file.c  |    4 ++--
 dlls/ntdll/tape.c  |    4 ++--
 dlls/ntdll/time.c  |   18 ++++++------------
 4 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/dlls/ntdll/cdrom.c b/dlls/ntdll/cdrom.c
index 9137bb3..5ce3f7d 100644
--- a/dlls/ntdll/cdrom.c
+++ b/dlls/ntdll/cdrom.c
@@ -756,9 +756,8 @@ static NTSTATUS CDROM_GetDriveGeometry(int dev, int fd, DISK_GEOMETRY* dg)
 
   fsize = FRAME_OF_TOC(toc, toc.LastTrack+1)
         - FRAME_OF_TOC(toc, 1); /* Total size in frames */
-  
-  dg->Cylinders.u.LowPart = fsize / (64 * 32); 
-  dg->Cylinders.u.HighPart = 0; 
+
+  dg->Cylinders.QuadPart = fsize / (64 * 32);
   dg->MediaType = RemovableMedia;  
   dg->TracksPerCylinder = 64; 
   dg->SectorsPerTrack = 32;  
@@ -2511,8 +2510,7 @@ static NTSTATUS DVD_ReadStructure(int dev, const DVD_READ_STRUCTURE *structure,
 	struct dvd_manufact	manufact;
     } s;
 
-    if (structure->BlockByteOffset.u.HighPart || structure->BlockByteOffset.u.LowPart)
-        FIXME(": BlockByteOffset is not handled\n");
+    if (structure->BlockByteOffset.QuadPart) FIXME(": BlockByteOffset is not handled\n");
 
     switch (structure->Format)
     {
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index e54b42a..ca1e5cb 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -2857,7 +2857,7 @@ NTSTATUS WINAPI NtCancelIoFileEx( HANDLE hFile, PIO_STATUS_BLOCK iosb, PIO_STATU
      * of the queued APC, but not yet run. This is needed to ensure proper
      * clean-up of allocated data.
      */
-    timeout.u.LowPart = timeout.u.HighPart = 0;
+    timeout.QuadPart = 0;
     NtDelayExecution( TRUE, &timeout );
     return io_status->u.Status;
 }
@@ -2889,7 +2889,7 @@ NTSTATUS WINAPI NtCancelIoFile( HANDLE hFile, PIO_STATUS_BLOCK io_status )
      * of the queued APC, but not yet run. This is needed to ensure proper
      * clean-up of allocated data.
      */
-    timeout.u.LowPart = timeout.u.HighPart = 0;
+    timeout.QuadPart = 0;
     NtDelayExecution( TRUE, &timeout );
     return io_status->u.Status;
 }
diff --git a/dlls/ntdll/tape.c b/dlls/ntdll/tape.c
index 2667e18..df46015 100644
--- a/dlls/ntdll/tape.c
+++ b/dlls/ntdll/tape.c
@@ -223,8 +223,8 @@ static NTSTATUS TAPE_GetMediaParams( int fd, TAPE_GET_MEDIA_PARAMETERS *data )
     if (status != STATUS_SUCCESS)
         return status;
 
-    data->Capacity.u.LowPart = 1024 * 1024 * 1024;
-    data->Remaining.u.LowPart = 1024 * 1024 * 1024;
+    data->Capacity.QuadPart = 1024 * 1024 * 1024;
+    data->Remaining.QuadPart = 1024 * 1024 * 1024;
 #ifdef HAVE_STRUCT_MTGET_MT_BLKSIZ
     data->BlockSize = get.mt_blksiz;
 #else
diff --git a/dlls/ntdll/time.c b/dlls/ntdll/time.c
index d233f23..a8b1376 100644
--- a/dlls/ntdll/time.c
+++ b/dlls/ntdll/time.c
@@ -331,10 +331,9 @@ NTSTATUS WINAPI RtlSystemTimeToLocalTime( const LARGE_INTEGER *SystemTime,
  */
 BOOLEAN WINAPI RtlTimeToSecondsSince1970( const LARGE_INTEGER *Time, LPDWORD Seconds )
 {
-    ULONGLONG tmp = ((ULONGLONG)Time->u.HighPart << 32) | Time->u.LowPart;
-    tmp = tmp / TICKSPERSEC - SECS_1601_TO_1970;
+    ULONGLONG tmp = Time->QuadPart / TICKSPERSEC - SECS_1601_TO_1970;
     if (tmp > 0xffffffff) return FALSE;
-    *Seconds = (DWORD)tmp;
+    *Seconds = tmp;
     return TRUE;
 }
 
@@ -353,10 +352,9 @@ BOOLEAN WINAPI RtlTimeToSecondsSince1970( const LARGE_INTEGER *Time, LPDWORD Sec
  */
 BOOLEAN WINAPI RtlTimeToSecondsSince1980( const LARGE_INTEGER *Time, LPDWORD Seconds )
 {
-    ULONGLONG tmp = ((ULONGLONG)Time->u.HighPart << 32) | Time->u.LowPart;
-    tmp = tmp / TICKSPERSEC - SECS_1601_TO_1980;
+    ULONGLONG tmp = Time->QuadPart / TICKSPERSEC - SECS_1601_TO_1980;
     if (tmp > 0xffffffff) return FALSE;
-    *Seconds = (DWORD)tmp;
+    *Seconds = tmp;
     return TRUE;
 }
 
@@ -374,9 +372,7 @@ BOOLEAN WINAPI RtlTimeToSecondsSince1980( const LARGE_INTEGER *Time, LPDWORD Sec
  */
 void WINAPI RtlSecondsSince1970ToTime( DWORD Seconds, LARGE_INTEGER *Time )
 {
-    ULONGLONG secs = Seconds * (ULONGLONG)TICKSPERSEC + TICKS_1601_TO_1970;
-    Time->u.LowPart  = (DWORD)secs;
-    Time->u.HighPart = (DWORD)(secs >> 32);
+    Time->QuadPart = Seconds * (ULONGLONG)TICKSPERSEC + TICKS_1601_TO_1970;
 }
 
 /******************************************************************************
@@ -393,9 +389,7 @@ void WINAPI RtlSecondsSince1970ToTime( DWORD Seconds, LARGE_INTEGER *Time )
  */
 void WINAPI RtlSecondsSince1980ToTime( DWORD Seconds, LARGE_INTEGER *Time )
 {
-    ULONGLONG secs = Seconds * (ULONGLONG)TICKSPERSEC + TICKS_1601_TO_1980;
-    Time->u.LowPart  = (DWORD)secs;
-    Time->u.HighPart = (DWORD)(secs >> 32);
+    Time->QuadPart = Seconds * (ULONGLONG)TICKSPERSEC + TICKS_1601_TO_1980;
 }
 
 /******************************************************************************




More information about the wine-cvs mailing list