1.1 --- a/src/share/vm/oops/instanceKlass.cpp Thu May 23 17:39:32 2013 +0200 1.2 +++ b/src/share/vm/oops/instanceKlass.cpp Thu May 23 23:04:33 2013 -0700 1.3 @@ -2754,15 +2754,28 @@ 1.4 return NULL; 1.5 } 1.6 1.7 -void InstanceKlass::add_member_name(Handle mem_name) { 1.8 +void InstanceKlass::add_member_name(int index, Handle mem_name) { 1.9 jweak mem_name_wref = JNIHandles::make_weak_global(mem_name); 1.10 MutexLocker ml(MemberNameTable_lock); 1.11 + assert(0 <= index && index < idnum_allocated_count(), "index is out of bounds"); 1.12 DEBUG_ONLY(No_Safepoint_Verifier nsv); 1.13 1.14 if (_member_names == NULL) { 1.15 - _member_names = new (ResourceObj::C_HEAP, mtClass) MemberNameTable(); 1.16 + _member_names = new (ResourceObj::C_HEAP, mtClass) MemberNameTable(idnum_allocated_count()); 1.17 } 1.18 - _member_names->add_member_name(mem_name_wref); 1.19 + _member_names->add_member_name(index, mem_name_wref); 1.20 +} 1.21 + 1.22 +oop InstanceKlass::get_member_name(int index) { 1.23 + MutexLocker ml(MemberNameTable_lock); 1.24 + assert(0 <= index && index < idnum_allocated_count(), "index is out of bounds"); 1.25 + DEBUG_ONLY(No_Safepoint_Verifier nsv); 1.26 + 1.27 + if (_member_names == NULL) { 1.28 + return NULL; 1.29 + } 1.30 + oop mem_name =_member_names->get_member_name(index); 1.31 + return mem_name; 1.32 } 1.33 1.34 // -----------------------------------------------------------------------------------------------------