| 1004 | } |
| 1005 | |
| 1006 | Status FunctionCallFrame::ConsumeRetvals(std::vector<Tensor>* rets, |
| 1007 | bool allow_dead_tensors) { |
| 1008 | rets->clear(); |
| 1009 | rets->reserve(rets_.size()); |
| 1010 | for (size_t i = 0; i < rets_.size(); ++i) { |
| 1011 | if (rets_[i].has_val) { |
| 1012 | rets->emplace_back(std::move(rets_[i].val)); |
| 1013 | } else if (allow_dead_tensors) { |
| 1014 | rets->emplace_back(); |
| 1015 | } else { |
| 1016 | return errors::Internal("Retval[", i, "] does not have value"); |
| 1017 | } |
| 1018 | } |
| 1019 | return Status::OK(); |
| 1020 | } |
| 1021 | |
| 1022 | Status FunctionCallFrame::GetArg(int index, Tensor* val) const { |
| 1023 | if (index < 0 || static_cast<size_t>(index) >= args_.size()) { |