# HG changeset patch # User kvn # Date 1240862128 25200 # Node ID 27e8e660fbd0df08701ad654a3fff8bd52ec0b40 # Parent 6ffcd0923239378f24502b94b9c9ee298705dc36# Parent 3672e1dac76527a737315c786b6b39f3f930a8f8 Merge diff -r 3672e1dac765 -r 27e8e660fbd0 .hgtags --- a/.hgtags Mon Apr 27 12:45:14 2009 -0700 +++ b/.hgtags Mon Apr 27 12:55:28 2009 -0700 @@ -28,3 +28,5 @@ 2581d90c6c9b2012da930eb4742add94a03069a0 jdk7-b51 1b1e8f1a4fe8cebc01c022484f78148e17b62a0d jdk7-b52 032c6af894dae8d939b3dd31d82042549e7793e0 jdk7-b53 +fafab5d5349c7c066d677538db67a1ee0fb33bd2 jdk7-b54 +f8e839c086152da70d6ec5913ba6f9f509282e8d jdk7-b55 diff -r 3672e1dac765 -r 27e8e660fbd0 make/jprt.properties --- a/make/jprt.properties Mon Apr 27 12:45:14 2009 -0700 +++ b/make/jprt.properties Mon Apr 27 12:55:28 2009 -0700 @@ -46,24 +46,28 @@ jprt.my.solaris.sparc.jdk6=solaris_sparc_5.8 jprt.my.solaris.sparc.jdk6perf=solaris_sparc_5.8 jprt.my.solaris.sparc.jdk6u10=solaris_sparc_5.8 +jprt.my.solaris.sparc.jdk6u14=solaris_sparc_5.8 jprt.my.solaris.sparc=${jprt.my.solaris.sparc.${jprt.tools.default.release}} jprt.my.solaris.sparcv9.jdk7=solaris_sparcv9_5.10 jprt.my.solaris.sparcv9.jdk6=solaris_sparcv9_5.8 jprt.my.solaris.sparcv9.jdk6perf=solaris_sparcv9_5.8 jprt.my.solaris.sparcv9.jdk6u10=solaris_sparcv9_5.8 +jprt.my.solaris.sparcv9.jdk6u14=solaris_sparcv9_5.8 jprt.my.solaris.sparcv9=${jprt.my.solaris.sparcv9.${jprt.tools.default.release}} jprt.my.solaris.i586.jdk7=solaris_i586_5.10 jprt.my.solaris.i586.jdk6=solaris_i586_5.8 jprt.my.solaris.i586.jdk6perf=solaris_i586_5.8 jprt.my.solaris.i586.jdk6u10=solaris_i586_5.8 +jprt.my.solaris.i586.jdk6u14=solaris_i586_5.8 jprt.my.solaris.i586=${jprt.my.solaris.i586.${jprt.tools.default.release}} jprt.my.solaris.x64.jdk7=solaris_x64_5.10 jprt.my.solaris.x64.jdk6=solaris_x64_5.10 jprt.my.solaris.x64.jdk6perf=solaris_x64_5.10 jprt.my.solaris.x64.jdk6u10=solaris_x64_5.10 +jprt.my.solaris.x64.jdk6u14=solaris_x64_5.10 jprt.my.solaris.x64=${jprt.my.solaris.x64.${jprt.tools.default.release}} jprt.my.linux.i586=linux_i586 diff -r 3672e1dac765 -r 27e8e660fbd0 src/os/windows/vm/os_windows.cpp --- a/src/os/windows/vm/os_windows.cpp Mon Apr 27 12:45:14 2009 -0700 +++ b/src/os/windows/vm/os_windows.cpp Mon Apr 27 12:55:28 2009 -0700 @@ -2632,6 +2632,8 @@ char* os::reserve_memory_special(size_t bytes, char* addr, bool exec) { + const DWORD prot = exec ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE; + if (UseLargePagesIndividualAllocation) { if (TracePageSizes && Verbose) { tty->print_cr("Reserving large pages individually."); @@ -2694,13 +2696,7 @@ p_new = (char *) VirtualAlloc(next_alloc_addr, bytes_to_rq, MEM_RESERVE | MEM_COMMIT | MEM_LARGE_PAGES, - PAGE_READWRITE); - if (p_new != NULL && exec) { - DWORD oldprot; - // Windows doc says to use VirtualProtect to get execute permissions - VirtualProtect(next_alloc_addr, bytes_to_rq, - PAGE_EXECUTE_READWRITE, &oldprot); - } + prot); } if (p_new == NULL) { @@ -2729,12 +2725,7 @@ } else { // normal policy just allocate it all at once DWORD flag = MEM_RESERVE | MEM_COMMIT | MEM_LARGE_PAGES; - char * res = (char *)VirtualAlloc(NULL, bytes, flag, PAGE_READWRITE); - if (res != NULL && exec) { - DWORD oldprot; - // Windows doc says to use VirtualProtect to get execute permissions - VirtualProtect(res, bytes, PAGE_EXECUTE_READWRITE, &oldprot); - } + char * res = (char *)VirtualAlloc(NULL, bytes, flag, prot); return res; } }