--- old/src/hotspot/os/windows/os_windows.cpp 2017-11-17 12:59:34.790939741 -0500 +++ new/src/hotspot/os/windows/os_windows.cpp 2017-11-17 12:59:34.641939652 -0500 @@ -364,6 +364,24 @@ return sz; } +size_t os::pd_committed_stack_size(address bottom, size_t size) { + MEMORY_BASIC_INFORMATION minfo; + address top = bottom + size; + size_t committed_size = 0; + + while (committed_size < size) { + VirtualQuery(top, &minfo, sizeof(minfo)); + if ((minfo.State & MEM_COMMIT) != 0) { + committed_size += minfo.RegionSize; + top -= minfo.RegionSize; + } else { + break; + } + } + + return MIN2(committed_size, size); +} + struct tm* os::localtime_pd(const time_t* clock, struct tm* res) { const struct tm* time_struct_ptr = localtime(clock); if (time_struct_ptr != NULL) {