| 281 | } |
| 282 | |
| 283 | TfLiteStatus Interpreter::SetBufferHandle(int tensor_index, |
| 284 | TfLiteBufferHandle buffer_handle, |
| 285 | TfLiteDelegate* delegate) { |
| 286 | TF_LITE_ENSURE(context_, tensor_index < tensors_size()); |
| 287 | std::vector<TfLiteTensor>& tensors = primary_subgraph().tensors(); |
| 288 | TfLiteTensor* tensor = &tensors[tensor_index]; |
| 289 | |
| 290 | TF_LITE_ENSURE(context_, |
| 291 | tensor->delegate == nullptr || tensor->delegate == delegate); |
| 292 | tensor->delegate = delegate; |
| 293 | if (tensor->buffer_handle != kTfLiteNullBufferHandle) { |
| 294 | TF_LITE_ENSURE(context_, tensor->delegate->FreeBufferHandle != nullptr); |
| 295 | tensor->delegate->FreeBufferHandle(context_, tensor->delegate, |
| 296 | &tensor->buffer_handle); |
| 297 | } |
| 298 | tensor->buffer_handle = buffer_handle; |
| 299 | |
| 300 | return kTfLiteOk; |
| 301 | } |
| 302 | |
| 303 | TfLiteStatus Interpreter::GetBufferHandle(int tensor_index, |
| 304 | TfLiteBufferHandle* buffer_handle, |