< prev index next >
src/share/vm/classfile/classLoaderData.cpp
Print this page
*** 757,774 ****
}
}
return metaspace;
}
! jobject ClassLoaderData::add_handle(Handle h) {
MutexLockerEx ml(metaspace_lock(), Mutex::_no_safepoint_check_flag);
! return (jobject) _handles.add(h());
}
! void ClassLoaderData::remove_handle_unsafe(jobject h) {
! assert(_handles.contains((oop*) h), "Got unexpected handle " PTR_FORMAT, p2i((oop*) h));
! *((oop*) h) = NULL;
}
// Add this metadata pointer to be freed when it's safe. This is only during
// class unloading because Handles might point to this metadata field.
void ClassLoaderData::add_to_deallocate_list(Metadata* m) {
--- 757,778 ----
}
}
return metaspace;
}
! OopHandle ClassLoaderData::add_handle(Handle h) {
MutexLockerEx ml(metaspace_lock(), Mutex::_no_safepoint_check_flag);
! return OopHandle(_handles.add(h()));
}
! void ClassLoaderData::init_handle_locked(OopHandle& dest, Handle h) {
! MutexLockerEx ml(metaspace_lock(), Mutex::_no_safepoint_check_flag);
! if (dest.resolve() != NULL) {
! return;
! } else {
! dest = _handles.add(h());
! }
}
// Add this metadata pointer to be freed when it's safe. This is only during
// class unloading because Handles might point to this metadata field.
void ClassLoaderData::add_to_deallocate_list(Metadata* m) {
< prev index next >