void Executable::Info::mark_inliners(Object* obj, memory::ObjectMark& mark) { Executable* exc = static_cast<Executable*>(obj); if(!exc->inliners() || exc->inliners() == (Inliners*)cNil) return; Inliners* inl = exc->inliners(); inl->set_mark(); // std::cout << "Marking inliners: " << inl->inliners().size() << "\n"; for(std::vector<CompiledCode*>::iterator i = inl->inliners().begin(); i != inl->inliners().end(); ++i) { CompiledCode* code = *i; if(Object* tmp = mark.call(code)) { *i = static_cast<CompiledCode*>(tmp); mark.just_set(obj, tmp); } } }