Forráskód Böngészése

LibCore: Fix bug in CreateFileMapping call

size >> 31 >> 1 is used instead of size >> 32 to support 32-bit Windows
(size_t is 32 bit there, and you cannot shift 32-bit value by 32 bits
on x86)
This is equivalent to sizeof(size) == 4 ? 0 : size >> 32
stasoid 8 hónapja
szülő
commit
dabf3da7e5
1 módosított fájl, 1 hozzáadás és 1 törlés
  1. 1 1
      Libraries/LibCore/AnonymousBufferWindows.cpp

+ 1 - 1
Libraries/LibCore/AnonymousBufferWindows.cpp

@@ -28,7 +28,7 @@ AnonymousBufferImpl::~AnonymousBufferImpl()
 
 
 ErrorOr<NonnullRefPtr<AnonymousBufferImpl>> AnonymousBufferImpl::create(size_t size)
 ErrorOr<NonnullRefPtr<AnonymousBufferImpl>> AnonymousBufferImpl::create(size_t size)
 {
 {
-    HANDLE map_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, HIWORD(size), LOWORD(size), NULL);
+    HANDLE map_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, size >> 31 >> 1, size & 0xFFFFFFFF, NULL);
     if (!map_handle)
     if (!map_handle)
         return Error::from_windows_error(GetLastError());
         return Error::from_windows_error(GetLastError());