예제 #1
0
void MazeManager::broadcastSummaryData() const
{
	GameSummary summary_data(mazes_.size());
	for (maze_vector::const_iterator it = mazes_.begin(); it != mazes_.end(); ++it)
		summary_data.addMazeConfig((*it)->getMazeConfig());
	GameMessage msg(GameMessage::GC_GAMES_NOTIFY, &summary_data);
	server_.broadcast(msg);
}
inline void PSParallelCompact::adjust_pointer(T* p, ParCompactionManager* cm) {
  T heap_oop = oopDesc::load_heap_oop(p);
  if (!oopDesc::is_null(heap_oop)) {
    oop obj     = oopDesc::decode_heap_oop_not_null(heap_oop);
    assert(ParallelScavengeHeap::heap()->is_in(obj), "should be in heap");

    oop new_obj = (oop)summary_data().calc_new_pointer(obj, cm);
    assert(new_obj != NULL,                    // is forwarding ptr?
           "should be forwarded");
    // Just always do the update unconditionally?
    if (new_obj != NULL) {
      assert(ParallelScavengeHeap::heap()->is_in_reserved(new_obj),
             "should be in object space");
      oopDesc::encode_store_heap_oop_not_null(p, new_obj);
    }
  }
}