src/share/vm/runtime/frame.cpp

changeset 2361
09b4dd4f152b
parent 2314
f95d63e2154a
child 2365
54f5dd2aa1d9
     1.1 --- a/src/share/vm/runtime/frame.cpp	Thu Dec 09 17:53:22 2010 +0300
     1.2 +++ b/src/share/vm/runtime/frame.cpp	Thu Dec 09 15:04:26 2010 -0500
     1.3 @@ -1071,28 +1071,20 @@
     1.4    }
     1.5  }
     1.6  
     1.7 -BasicLock* frame::compiled_synchronized_native_monitor(nmethod* nm) {
     1.8 -  if (nm == NULL) {
     1.9 -    assert(_cb != NULL && _cb->is_nmethod() &&
    1.10 -           nm->method()->is_native() &&
    1.11 -           nm->method()->is_synchronized(),
    1.12 -           "should not call this otherwise");
    1.13 -    nm = (nmethod*) _cb;
    1.14 -  }
    1.15 -  int byte_offset = in_bytes(nm->compiled_synchronized_native_basic_lock_sp_offset());
    1.16 +BasicLock* frame::get_native_monitor() {
    1.17 +  nmethod* nm = (nmethod*)_cb;
    1.18 +  assert(_cb != NULL && _cb->is_nmethod() && nm->method()->is_native(),
    1.19 +         "Should not call this unless it's a native nmethod");
    1.20 +  int byte_offset = in_bytes(nm->native_basic_lock_sp_offset());
    1.21    assert(byte_offset >= 0, "should not see invalid offset");
    1.22    return (BasicLock*) &sp()[byte_offset / wordSize];
    1.23  }
    1.24  
    1.25 -oop frame::compiled_synchronized_native_monitor_owner(nmethod* nm) {
    1.26 -  if (nm == NULL) {
    1.27 -    assert(_cb != NULL && _cb->is_nmethod() &&
    1.28 -           nm->method()->is_native() &&
    1.29 -           nm->method()->is_synchronized(),
    1.30 -           "should not call this otherwise");
    1.31 -    nm = (nmethod*) _cb;
    1.32 -  }
    1.33 -  int byte_offset = in_bytes(nm->compiled_synchronized_native_basic_lock_owner_sp_offset());
    1.34 +oop frame::get_native_receiver() {
    1.35 +  nmethod* nm = (nmethod*)_cb;
    1.36 +  assert(_cb != NULL && _cb->is_nmethod() && nm->method()->is_native(),
    1.37 +         "Should not call this unless it's a native nmethod");
    1.38 +  int byte_offset = in_bytes(nm->native_receiver_sp_offset());
    1.39    assert(byte_offset >= 0, "should not see invalid offset");
    1.40    oop owner = ((oop*) sp())[byte_offset / wordSize];
    1.41    assert( Universe::heap()->is_in(owner), "bad receiver" );

mercurial