hotspot/src/share/vm/oops/instanceKlass.cpp
changeset 17029 9ff8d7c0ed79
parent 16672 152c041083e1
child 17075 b53332c50aba
--- a/hotspot/src/share/vm/oops/instanceKlass.cpp	Fri Apr 19 16:51:27 2013 -0700
+++ b/hotspot/src/share/vm/oops/instanceKlass.cpp	Sat Apr 20 04:07:08 2013 -0700
@@ -2329,6 +2329,12 @@
     FreeHeap(jmeths);
   }
 
+  MemberNameTable* mnt = member_names();
+  if (mnt != NULL) {
+    delete mnt;
+    set_member_names(NULL);
+  }
+
   int* indices = methods_cached_itable_indices_acquire();
   if (indices != (int*)NULL) {
     release_set_methods_cached_itable_indices(NULL);
@@ -2757,6 +2763,17 @@
   return NULL;
 }
 
+void InstanceKlass::add_member_name(Handle mem_name) {
+  jweak mem_name_wref = JNIHandles::make_weak_global(mem_name);
+  MutexLocker ml(MemberNameTable_lock);
+  DEBUG_ONLY(No_Safepoint_Verifier nsv);
+
+  if (_member_names == NULL) {
+    _member_names = new (ResourceObj::C_HEAP, mtClass) MemberNameTable();
+  }
+  _member_names->add_member_name(mem_name_wref);
+}
+
 // -----------------------------------------------------------------------------------------------------
 // Printing