Mercurial > hg > graal-jvmci-8
comparison src/share/vm/code/nmethod.cpp @ 23463:5cece4584b8e
8058563: InstanceKlass::_dependencies list isn't cleared from empty nmethodBucket entries
Reviewed-by: mgerdin, vlivanov
author | stefank |
---|---|
date | Thu, 12 Nov 2015 09:53:17 +0100 |
parents | be740540f60c |
children | b5f3a471e646 |
comparison
equal
deleted
inserted
replaced
23462:f46ffa934a46 | 23463:5cece4584b8e |
---|---|
1617 if (klass == NULL) continue; // ignore things like evol_method | 1617 if (klass == NULL) continue; // ignore things like evol_method |
1618 | 1618 |
1619 // During GC the is_alive closure is non-NULL, and is used to | 1619 // During GC the is_alive closure is non-NULL, and is used to |
1620 // determine liveness of dependees that need to be updated. | 1620 // determine liveness of dependees that need to be updated. |
1621 if (is_alive == NULL || klass->is_loader_alive(is_alive)) { | 1621 if (is_alive == NULL || klass->is_loader_alive(is_alive)) { |
1622 InstanceKlass::cast(klass)->remove_dependent_nmethod(this); | 1622 // The GC defers deletion of this entry, since there might be multiple threads |
1623 // iterating over the _dependencies graph. Other call paths are single-threaded | |
1624 // and may delete it immediately. | |
1625 bool delete_immediately = is_alive == NULL; | |
1626 InstanceKlass::cast(klass)->remove_dependent_nmethod(this, delete_immediately); | |
1623 } | 1627 } |
1624 } | 1628 } |
1625 } | 1629 } |
1626 } | 1630 } |
1627 | 1631 |