| Index: src/platform-win32.cc
|
| ===================================================================
|
| --- src/platform-win32.cc (revision 8778)
|
| +++ src/platform-win32.cc (working copy)
|
| @@ -740,6 +740,24 @@
|
| }
|
|
|
|
|
| +FILE* OS::OpenTemporaryFile() {
|
| + // tmpfile_s tries to use the root dir, don't use it.
|
| + char tempPathBuffer[MAX_PATH];
|
| + DWORD path_result = 0;
|
| + path_result = GetTempPathA(MAX_PATH, tempPathBuffer);
|
| + if (path_result > MAX_PATH || path_result == 0) return NULL;
|
| + UINT name_result = 0;
|
| + char tempNameBuffer[MAX_PATH];
|
| + name_result = GetTempFileNameA(tempPathBuffer, "", 0, tempNameBuffer);
|
| + if (name_result == 0) return NULL;
|
| + FILE* result = FOpen(tempNameBuffer, "w+"); // Same mode as tmpfile uses.
|
| + if (result != NULL) {
|
| + Remove(tempNameBuffer); // Delete on close.
|
| + }
|
| + return result;
|
| +}
|
| +
|
| +
|
| // Open log file in binary mode to avoid /n -> /r/n conversion.
|
| const char* const OS::LogFileOpenMode = "wb";
|
|
|
| @@ -939,25 +957,12 @@
|
| }
|
|
|
|
|
| -#ifdef ENABLE_HEAP_PROTECTION
|
| -
|
| -void OS::Protect(void* address, size_t size) {
|
| - // TODO(1240712): VirtualProtect has a return value which is ignored here.
|
| - DWORD old_protect;
|
| - VirtualProtect(address, size, PAGE_READONLY, &old_protect);
|
| +void OS::Guard(void* address, const size_t size) {
|
| + DWORD oldprotect;
|
| + VirtualProtect(address, size, PAGE_READONLY | PAGE_GUARD, &oldprotect);
|
| }
|
|
|
|
|
| -void OS::Unprotect(void* address, size_t size, bool is_executable) {
|
| - // TODO(1240712): VirtualProtect has a return value which is ignored here.
|
| - DWORD new_protect = is_executable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE;
|
| - DWORD old_protect;
|
| - VirtualProtect(address, size, new_protect, &old_protect);
|
| -}
|
| -
|
| -#endif
|
| -
|
| -
|
| void OS::Sleep(int milliseconds) {
|
| ::Sleep(milliseconds);
|
| }
|
| @@ -1883,8 +1888,6 @@
|
| }
|
|
|
|
|
| -#ifdef ENABLE_LOGGING_AND_PROFILING
|
| -
|
| // ----------------------------------------------------------------------------
|
| // Win32 profiler support.
|
|
|
| @@ -2059,6 +2062,5 @@
|
| SetActive(false);
|
| }
|
|
|
| -#endif // ENABLE_LOGGING_AND_PROFILING
|
|
|
| } } // namespace v8::internal
|
|
|