Exemple #1
0
void stringTable::gc_unmark_contents() {
  stringTableEntry* e;
  FOR_ALL_ENTRIES(e) {
    stringOop* addr;
    FOR_ALL_STRING_ADDR(e, addr, UNMARK_TEMPLATE(addr));
  }
}
Exemple #2
0
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;
}
Exemple #3
0
void NMethodLookupKey::gc_unmark_contents() {
    UNMARK_TEMPLATE(&_receiverMapOop);
    UNMARK_TEMPLATE(&_methodHolder_or_map);
    UNMARK_TEMPLATE(&selector);
    UNMARK_TEMPLATE(&delegatee);
}
Exemple #4
0
void space::gc_unmark_contents() {
  for (oop* p = objs_bottom; p < objs_top; p ++) UNMARK_TEMPLATE(p);
}