Esempio n. 1
0
void findNMethodsFor(oop b) {
  // for debugging
  if (!b->is_block()) {
    lprintf("(warning: not a block)\n");
  }
  map_to_find = b->map()->enclosing_mapOop();
  Memory->code->nmethods_do(findBlkFn);
}
Esempio n. 2
0
void map_enumeration::add_obj(oop obj) {
  assert(graph_maps->member(obj->map()->enclosing_mapOop()), "map should be known");
  if (!graph_maps->find(obj->map()->enclosing_mapOop())) {
    if (obj->is_block()) {
      // TO BE FIXED WHEN THE SIC IS BETTER TO KILL BLOCK OOPS WHEN
      // A SCOPE TREMINATE. 3/31/93 LB.
      // Clone and kill the copy to avoid the problem.
      obj = obj->clone(); 
      blockOop(obj)->kill_block();
    }
    graph_maps->update(obj->map()->enclosing_mapOop(), obj);
  }
}
Esempio n. 3
0
oop catch_interprocess_returns(oop blk) {
  // for debugging: catch nlrs to blocks in other processes
  // (if CatchInterprocessReturns is on)
  // lprintf("blk 0x%x,  scope 0x%x,  scopeID 0x%x\n",
  //         blk, scope, scopeID);
  if (!blk->is_block())
    return blk;
  blockOop b = blockOop(blk);
  if (!b->is_live())
    return b;
  frame* myScope = b->scope(true);
  if (myScope == NULL)
    return b;
  if (!currentProcess->contains(myScope)) {
    b->kill();
  }
  return b;
}