< prev index next >
src/share/vm/prims/jvmtiRedefineClasses.cpp
Print this page
*** 1672,1685 ****
*new_method_p = methodHandle(); // default is no new method
// We cache a pointer to the bytecodes here in code_base. If GC
// moves the Method*, then the bytecodes will also move which
! // will likely cause a crash. We create a No_Safepoint_Verifier
// object to detect whether we pass a possible safepoint in this
// code block.
! No_Safepoint_Verifier nsv;
// Bytecodes and their length
address code_base = method->code_base();
int code_length = method->code_size();
--- 1672,1685 ----
*new_method_p = methodHandle(); // default is no new method
// We cache a pointer to the bytecodes here in code_base. If GC
// moves the Method*, then the bytecodes will also move which
! // will likely cause a crash. We create a NoSafepointVerifier
// object to detect whether we pass a possible safepoint in this
// code block.
! NoSafepointVerifier nsv;
// Bytecodes and their length
address code_base = method->code_base();
int code_length = method->code_size();
*** 1733,1743 ****
Bytes::put_Java_u2(bcp, new_index);
Relocator rc(method, NULL /* no RelocatorListener needed */);
methodHandle m;
{
! Pause_No_Safepoint_Verifier pnsv(&nsv);
// ldc is 2 bytes and ldc_w is 3 bytes
m = rc.insert_space_at(bci, 3, inst_buffer, CHECK);
}
--- 1733,1743 ----
Bytes::put_Java_u2(bcp, new_index);
Relocator rc(method, NULL /* no RelocatorListener needed */);
methodHandle m;
{
! PauseNoSafepointVerifier pnsv(&nsv);
// ldc is 2 bytes and ldc_w is 3 bytes
m = rc.insert_space_at(bci, 3, inst_buffer, CHECK);
}
< prev index next >