< prev index next >

src/share/vm/classfile/classLoaderData.cpp

Print this page

        

@@ -757,18 +757,19 @@
     }
   }
   return metaspace;
 }
 
-jobject ClassLoaderData::add_handle(Handle h) {
+OopHandle ClassLoaderData::add_handle(Handle h) {
   MutexLockerEx ml(metaspace_lock(),  Mutex::_no_safepoint_check_flag);
-  return (jobject) _handles.add(h());
+  return OopHandle(_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;
+void ClassLoaderData::remove_handle_unsafe(OopHandle h) {
+  oop* obj = h.ptr();
+  assert(_handles.contains(obj), "Got unexpected handle " PTR_FORMAT, p2i(obj));
+  *(obj) = 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) {
< prev index next >