| 349 | } |
| 350 | |
| 351 | Status OpKernelContext::input(StringPiece name, const Tensor** tensor) { |
| 352 | int start, stop; |
| 353 | TF_RETURN_IF_ERROR(params_->op_kernel->InputRange(name, &start, &stop)); |
| 354 | if (stop != start + 1) { |
| 355 | return errors::InvalidArgument("OpKernel used list-valued input name '", |
| 356 | name, |
| 357 | "' when single-valued input was " |
| 358 | "expected"); |
| 359 | } |
| 360 | if (input_is_ref(start)) { |
| 361 | return errors::InvalidArgument("OpKernel used ref input name '", name, |
| 362 | "' when non-ref input was expected"); |
| 363 | } |
| 364 | *tensor = (*params_->inputs)[start].tensor; |
| 365 | record_tensor_reference(**tensor); |
| 366 | return Status::OK(); |
| 367 | } |
| 368 | |
| 369 | Status OpKernelContext::input_dtype(StringPiece name, DataType* dtype) const { |
| 370 | int start, stop; |