Jacek Caban : gdi32: Use NtQuerySystemInformation instead of GetSystemInfo.

Alexandre Julliard julliard at winehq.org
Fri Sep 17 16:03:09 CDT 2021


Module: wine
Branch: master
Commit: 82f29bff475b31175919762d27b30f8f4fceef67
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=82f29bff475b31175919762d27b30f8f4fceef67

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Sep 17 13:44:50 2021 +0200

gdi32: Use NtQuerySystemInformation instead of GetSystemInfo.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/dib.c           | 8 ++------
 dlls/gdi32/gdiobj.c        | 2 ++
 dlls/gdi32/ntgdi_private.h | 1 +
 3 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index db517b89745..c5f6a41cb77 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -1531,12 +1531,10 @@ HBITMAP WINAPI NtGdiCreateDIBSection( HDC hdc, HANDLE section, DWORD offset, con
 
     if (section)
     {
-        SYSTEM_INFO SystemInfo;
         DWORD mapOffset;
         INT mapSize;
 
-        GetSystemInfo( &SystemInfo );
-        mapOffset = offset - (offset % SystemInfo.dwAllocationGranularity);
+        mapOffset = offset - (offset % system_info.AllocationGranularity);
         mapSize = bmp->dib.dsBmih.biSizeImage + (offset - mapOffset);
         mapBits = MapViewOfFile( section, FILE_MAP_ALL_ACCESS, 0, mapOffset, mapSize );
         if (mapBits) bmp->dib.dsBm.bmBits = (char *)mapBits + (offset - mapOffset);
@@ -1741,10 +1739,8 @@ static BOOL DIB_DeleteObject( HGDIOBJ handle )
 
     if (bmp->dib.dshSection)
     {
-        SYSTEM_INFO SystemInfo;
-        GetSystemInfo( &SystemInfo );
         UnmapViewOfFile( (char *)bmp->dib.dsBm.bmBits -
-                         (bmp->dib.dsOffset % SystemInfo.dwAllocationGranularity) );
+                         (bmp->dib.dsOffset % system_info.AllocationGranularity) );
     }
     else VirtualFree( bmp->dib.dsBm.bmBits, 0, MEM_RELEASE );
 
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index 917d1c91f01..2a245b4596f 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -43,6 +43,7 @@ static GDI_HANDLE_ENTRY *next_free;
 static GDI_HANDLE_ENTRY *next_unused = gdi_shared.Handles + FIRST_GDI_HANDLE;
 static LONG debug_count;
 HMODULE gdi32_module = 0;
+SYSTEM_BASIC_INFORMATION system_info;
 
 static inline HGDIOBJ entry_to_handle( GDI_HANDLE_ENTRY *entry )
 {
@@ -702,6 +703,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
 
     gdi32_module = inst;
     DisableThreadLibraryCalls( inst );
+    NtQuerySystemInformation( SystemBasicInformation, &system_info, sizeof(system_info), NULL );
     set_gdi_shared();
     font_init();
     init_stock_objects();
diff --git a/dlls/gdi32/ntgdi_private.h b/dlls/gdi32/ntgdi_private.h
index 8e122dec6a0..afdbad24f4a 100644
--- a/dlls/gdi32/ntgdi_private.h
+++ b/dlls/gdi32/ntgdi_private.h
@@ -648,5 +648,6 @@ extern void CDECL free_heap_bits( struct gdi_image_bits *bits ) DECLSPEC_HIDDEN;
 void set_gdi_client_ptr( HGDIOBJ handle, void *ptr ) DECLSPEC_HIDDEN;
 
 extern HMODULE gdi32_module DECLSPEC_HIDDEN;
+extern SYSTEM_BASIC_INFORMATION system_info DECLSPEC_HIDDEN;
 
 #endif /* __WINE_NTGDI_PRIVATE_H */




More information about the wine-cvs mailing list