Mercurial > hg > truffle
diff src/os/solaris/vm/os_solaris.cpp @ 9062:8be1318fbe77
Merge
author | dcubed |
---|---|
date | Fri, 05 Apr 2013 10:38:08 -0700 |
parents | 754c24457b20 cc32ccaaf47f |
children | 89e4d67fdd2a 746b070f5022 e12c9b3740db |
line wrap: on
line diff
--- a/src/os/solaris/vm/os_solaris.cpp Thu Apr 04 21:15:43 2013 -0700 +++ b/src/os/solaris/vm/os_solaris.cpp Fri Apr 05 10:38:08 2013 -0700 @@ -1885,6 +1885,9 @@ } else if (strchr(pname, *os::path_separator()) != NULL) { int n; char** pelements = split_path(pname, &n); + if (pelements == NULL) { + return false; + } for (int i = 0 ; i < n ; i++) { // really shouldn't be NULL but what the heck, check can't hurt if (pelements[i] == NULL || strlen(pelements[i]) == 0) { @@ -5787,16 +5790,6 @@ //--------------------------------------------------------------------------------- -static address same_page(address x, address y) { - intptr_t page_bits = -os::vm_page_size(); - if ((intptr_t(x) & page_bits) == (intptr_t(y) & page_bits)) - return x; - else if (x > y) - return (address)(intptr_t(y) | ~page_bits) + 1; - else - return (address)(intptr_t(y) & page_bits); -} - bool os::find(address addr, outputStream* st) { Dl_info dlinfo; memset(&dlinfo, 0, sizeof(dlinfo)); @@ -5822,8 +5815,8 @@ if (Verbose) { // decode some bytes around the PC - address begin = same_page(addr-40, addr); - address end = same_page(addr+40, addr); + address begin = clamp_address_in_page(addr-40, addr, os::vm_page_size()); + address end = clamp_address_in_page(addr+40, addr, os::vm_page_size()); address lowest = (address) dlinfo.dli_sname; if (!lowest) lowest = (address) dlinfo.dli_fbase; if (begin < lowest) begin = lowest;