From 1c0c9f2f6b7d6683c1aa16229ff9242c60ec760d Mon Sep 17 00:00:00 2001 From: Tiezhen WANG Date: Thu, 6 Jun 2019 03:47:24 -0700 Subject: [PATCH] Initialize context using memset PiperOrigin-RevId: 251821825 --- .../experimental/micro/micro_interpreter.cc | 17 +++++------------ .../micro/micro_interpreter_test.cc | 4 ++++ 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/tensorflow/lite/experimental/micro/micro_interpreter.cc b/tensorflow/lite/experimental/micro/micro_interpreter.cc index 49d47d0353c..49ec03e85f4 100644 --- a/tensorflow/lite/experimental/micro/micro_interpreter.cc +++ b/tensorflow/lite/experimental/micro/micro_interpreter.cc @@ -67,7 +67,8 @@ MicroInterpreter::MicroInterpreter(const Model* model, op_resolver_(op_resolver), tensor_allocator_(tensor_allocator), error_reporter_(error_reporter), - initialization_status_(kTfLiteOk) { + initialization_status_(kTfLiteOk), + context_() { auto* subgraphs = model->subgraphs(); if (subgraphs->size() != 1) { error_reporter->Report("Only 1 subgraph is currently supported.\n"); @@ -82,23 +83,15 @@ MicroInterpreter::MicroInterpreter(const Model* model, context_.tensors = reinterpret_cast(tensor_allocator_->AllocateMemory( sizeof(TfLiteTensor) * context_.tensors_size, 4)); + context_.impl_ = static_cast(this); + context_.ReportError = ReportOpError; + context_.recommended_num_threads = 1; initialization_status_ = AllocateInputAndActTensors(); if (initialization_status_ != kTfLiteOk) { return; } - context_.impl_ = static_cast(this); - context_.GetExecutionPlan = nullptr; - context_.ResizeTensor = nullptr; - context_.ReportError = ReportOpError; - context_.AddTensors = nullptr; - context_.GetNodeAndRegistration = nullptr; - context_.ReplaceNodeSubsetsWithDelegateKernels = nullptr; - context_.recommended_num_threads = 1; - context_.GetExternalContext = nullptr; - context_.SetExternalContext = nullptr; - initialization_status_ = AllocateTemporaryTensors(); if (initialization_status_ != kTfLiteOk) { return; diff --git a/tensorflow/lite/experimental/micro/micro_interpreter_test.cc b/tensorflow/lite/experimental/micro/micro_interpreter_test.cc index 0c0c71f0792..6e5dcdf547c 100644 --- a/tensorflow/lite/experimental/micro/micro_interpreter_test.cc +++ b/tensorflow/lite/experimental/micro/micro_interpreter_test.cc @@ -20,6 +20,10 @@ limitations under the License. namespace tflite { namespace { void* MockInit(TfLiteContext* context, const char* buffer, size_t length) { + // We don't support delegate in TFL micro. This is a weak check to test if + // context struct being zero-initialized. + TF_LITE_MICRO_EXPECT_EQ(nullptr, + context->ReplaceNodeSubsetsWithDelegateKernels); // Do nothing. return nullptr; }