void stringTable::gc_unmark_contents() { stringTableEntry* e; FOR_ALL_ENTRIES(e) { stringOop* addr; FOR_ALL_STRING_ADDR(e, addr, UNMARK_TEMPLATE(addr)); } }
bool OopNCode::gc_unmark_contents() { ResourceMark m; bool needToInvalICache = false; addrDesc* p = locs(), *end = locsEnd(); LocChange* changes = NEW_RESOURCE_ARRAY( LocChange, end - p); int32 locLen = 0; for (; p < end; p++) { if (!p->isOop()) { // no oops here } else { oop oldOop = (oop)p->referent(this); oop newOop = oldOop; UNMARK_TEMPLATE(&newOop); if (newOop != oldOop) { changes[locLen].p = p; changes[locLen].newOop = newOop; locLen ++; needToInvalICache = true; } } } for (LocChange* l = &changes[0]; locLen > 0; locLen--, l++) { l->p->set_referent(this, (char*)l->newOop); } return needToInvalICache; }
void NMethodLookupKey::gc_unmark_contents() { UNMARK_TEMPLATE(&_receiverMapOop); UNMARK_TEMPLATE(&_methodHolder_or_map); UNMARK_TEMPLATE(&selector); UNMARK_TEMPLATE(&delegatee); }
void space::gc_unmark_contents() { for (oop* p = objs_bottom; p < objs_top; p ++) UNMARK_TEMPLATE(p); }