From aacc450955ed5871e3ef68346fec2467c785799e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 30 Oct 2012 11:43:05 +0100 Subject: [PATCH] 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 9137bb35c04..5ce3f7dc2e8 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 e54b42a4324..ca1e5cbff02 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 2667e18dec0..df460158c81 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 d233f236772..a8b13768450 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; } /******************************************************************************