src/share/vm/oops/instanceKlass.cpp

changeset 5178
b7fa10a3a69a
parent 5176
6bd680e9ea35
child 5180
6c138b9851fb
     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  // -----------------------------------------------------------------------------------------------------

mercurial