void stringTable::relocate() { stringTableEntry* e; FOR_ALL_ENTRIES(e) { stringOop* addr; FOR_ALL_STRING_ADDR(e, addr, RELOCATE_TEMPLATE(addr)); } }
void symbolTable::relocate() { symbolTableEntry* e; FOR_ALL_ENTRIES(e) { symbolOop* addr; FOR_ALL_SYMBOL_ADDR(e, addr, RELOCATE_TEMPLATE(addr)); } }
void OopNCode::relocate() { ResourceMark m; 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; RELOCATE_TEMPLATE(&newOop); if (newOop != oldOop) { changes[locLen].p = p; changes[locLen].newOop = newOop; locLen ++; } } } for (LocChange* l = &changes[0]; locLen > 0; locLen--, l++) { l->p->set_referent(this, (char*)l->newOop); } }
void NMethodLookupKey::relocate() { RELOCATE_TEMPLATE(&_receiverMapOop); RELOCATE_TEMPLATE(&_methodHolder_or_map); RELOCATE_TEMPLATE(&selector); RELOCATE_TEMPLATE(&delegatee); }
void space::relocate() { for (oop* p = objs_bottom; p < objs_top; p ++) RELOCATE_TEMPLATE(p); }