src/share/vm/oops/cpCacheKlass.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/oops/cpCacheKlass.cpp Tue Mar 8 20:18:01 2011
--- new/src/share/vm/oops/cpCacheKlass.cpp Tue Mar 8 20:18:01 2011
*** 166,193 ****
--- 166,189 ----
#ifndef SERIALGC
void constantPoolCacheKlass::oop_push_contents(PSPromotionManager* pm,
oop obj) {
assert(obj->is_constantPoolCache(), "should be constant pool");
! if (EnableInvokeDynamic) {
! if (ScavengeRootsInCode) {
constantPoolCacheOop cache = (constantPoolCacheOop)obj;
// during a scavenge, it is safe to inspect my pool, since it is perm
constantPoolOop pool = cache->constant_pool();
assert(pool->is_constantPool(), "should be constant pool");
if (pool->has_invokedynamic()) {
for (int i = 0; i < cache->length(); i++) {
ConstantPoolCacheEntry* e = cache->entry_at(i);
oop* p = (oop*)&e->_f1;
if (e->is_secondary_entry()) {
if (PSScavenge::should_scavenge(p))
pm->claim_or_forward_depth(p);
assert(!(e->is_vfinal() && PSScavenge::should_scavenge((oop*)&e->_f2)),
"no live oops here");
}
}
}
}
}
int
constantPoolCacheKlass::oop_update_pointers(ParCompactionManager* cm, oop obj) {
assert(obj->is_constantPoolCache(), "obj must be constant pool cache");
src/share/vm/oops/cpCacheKlass.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File