Ejemplo n.º 1
0
	static VALUE bb_successors(VALUE self) {
		BasicBlock *block;
		Data_Get_Struct(self, BasicBlock, block);
		VALUE result;
		if ((result = block->cached_successors()) && result != Qnil) {
			return result;
		}
		std::vector<BasicBlock::Edge*>& list = block->successors();

		result = rb_ary_new();
		for (std::vector<BasicBlock::Edge*>::iterator it = list.begin();
			 it < list.end();
			 ++it) {
			rb_ary_push(result, (*it)->to->representation());
		}
		block->set_cached_successors(result);
		return result;
	}