< prev index next >

src/os/windows/vm/os_windows.cpp

Print this page

        

@@ -3421,11 +3421,15 @@
   char * next_protect_addr = addr;
 
   // Use VirtualQuery() to get the chunk size.
   while (bytes_remaining) {
     MEMORY_BASIC_INFORMATION alloc_info;
-    VirtualQuery(next_protect_addr, &alloc_info, sizeof(alloc_info));
+    ret = VirtualQuery(next_protect_addr, &alloc_info, sizeof(alloc_info)) != 0;
+    if (!ret) {
+      return false;
+    }
+
     size_t bytes_to_protect = MIN2(bytes_remaining, (size_t)alloc_info.RegionSize);
     // We used different API at allocate_pages_individually() based on UseNUMAInterleaving,
     // but we don't distinguish here as both cases are protected by same API.
     ret = VirtualProtect(next_protect_addr, bytes_to_protect, p, old_status) != 0;
     assert(ret, "Failed protecting chunk #%u", count);

@@ -3465,17 +3469,11 @@
   // have different (one-shot) semantics, from MSDN on PAGE_GUARD:
   //
   // Pages in the region become guard pages. Any attempt to access a guard page
   // causes the system to raise a STATUS_GUARD_PAGE exception and turn off
   // the guard page status. Guard pages thus act as a one-time access alarm.
-  bool use_individual = (UseNUMAInterleaving && !UseLargePages);
-  bool ret;
-  if (use_individual) {
-    ret = protect_pages_individually(addr, bytes, p, &old_status);
-  } else {
-    ret = VirtualProtect(addr, bytes, p, &old_status) != 0;
-  }
+  bool ret = protect_pages_individually(addr, bytes, p, &old_status);
 #ifdef ASSERT
   if (!ret) {
     int err = os::get_last_error();
     char buf[256];
     size_t buf_len = os::lasterror(buf, sizeof(buf));
< prev index next >