src/share/vm/oops/methodData.cpp

changeset 6485
da862781b584
parent 6472
2b8e28fdf503
parent 6105
6e1826d5c23e
child 6518
62c54fcc0a35
     1.1 --- a/src/share/vm/oops/methodData.cpp	Wed Nov 20 11:08:09 2013 -0800
     1.2 +++ b/src/share/vm/oops/methodData.cpp	Thu Nov 21 12:30:35 2013 -0800
     1.3 @@ -275,23 +275,23 @@
     1.4  }
     1.5  
     1.6  bool TypeEntries::is_loader_alive(BoolObjectClosure* is_alive_cl, intptr_t p) {
     1.7 -  return !is_type_none(p) &&
     1.8 -    !((Klass*)klass_part(p))->is_loader_alive(is_alive_cl);
     1.9 +  Klass* k = (Klass*)klass_part(p);
    1.10 +  return k != NULL && k->is_loader_alive(is_alive_cl);
    1.11  }
    1.12  
    1.13  void TypeStackSlotEntries::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) {
    1.14    for (int i = 0; i < _number_of_entries; i++) {
    1.15      intptr_t p = type(i);
    1.16 -    if (is_loader_alive(is_alive_cl, p)) {
    1.17 -      set_type(i, type_none());
    1.18 +    if (!is_loader_alive(is_alive_cl, p)) {
    1.19 +      set_type(i, with_status((Klass*)NULL, p));
    1.20      }
    1.21    }
    1.22  }
    1.23  
    1.24  void ReturnTypeEntry::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) {
    1.25    intptr_t p = type();
    1.26 -  if (is_loader_alive(is_alive_cl, p)) {
    1.27 -    set_type(type_none());
    1.28 +  if (!is_loader_alive(is_alive_cl, p)) {
    1.29 +    set_type(with_status((Klass*)NULL, p));
    1.30    }
    1.31  }
    1.32  

mercurial