Explorar o código

fix to use VirtualFreeEx for pages on another process

Lei Shi %!s(int64=9) %!d(string=hai) anos
pai
achega
fa9ebc1bdc
Modificáronse 1 ficheiros con 8 adicións e 1 borrados
  1. 8 1
      lib/Common/Memory/VirtualAllocWrapper.cpp

+ 8 - 1
lib/Common/Memory/VirtualAllocWrapper.cpp

@@ -76,7 +76,14 @@ BOOL VirtualAllocWrapper::Free(LPVOID lpAddress, size_t dwSize, DWORD dwFreeType
     Assert(this == nullptr);
     AnalysisAssert(dwFreeType == MEM_RELEASE || dwFreeType == MEM_DECOMMIT);
     size_t bytes = (dwFreeType == MEM_RELEASE)? 0 : dwSize;
-    return VirtualFree(lpAddress, bytes, dwFreeType);
+    if (process)
+    {
+        return VirtualFreeEx(process, lpAddress, bytes, dwFreeType);
+    }
+    else
+    {
+        return VirtualFree(lpAddress, bytes, dwFreeType);
+    }
 }
 
 /*