Browse Source

fix memory leak

tags/v1.2.0-rc1
zengxianglong 4 years ago
parent
commit
4aed10f552
3 changed files with 4 additions and 2 deletions
  1. +2
    -2
      mindspore/lite/tools/converter/legacy_optimizer/graph/infershape_pass.cc
  2. +1
    -0
      mindspore/lite/tools/optimizer/fusion/constant_folding_fusion.cc
  3. +1
    -0
      mindspore/lite/tools/optimizer/graph/infershape_pass.cc

+ 2
- 2
mindspore/lite/tools/converter/legacy_optimizer/graph/infershape_pass.cc View File

@@ -116,7 +116,7 @@ std::vector<Tensor *> ConvertTensorToLiteTensor(MetaGraphT *graph, const std::ve
return lite_tensors; return lite_tensors;
} }


STATUS NodeInferShpae(const std::unique_ptr<schema::CNodeT> &node, const std::vector<Tensor *> &inputs,
STATUS NodeInferShape(const std::unique_ptr<schema::CNodeT> &node, const std::vector<Tensor *> &inputs,
std::vector<Tensor *> *outputs) { std::vector<Tensor *> *outputs) {
flatbuffers::FlatBufferBuilder fbb(INITIAL_SIZE); flatbuffers::FlatBufferBuilder fbb(INITIAL_SIZE);
auto prim = ConvertToPrimitive(node->primitive.get(), &fbb); auto prim = ConvertToPrimitive(node->primitive.get(), &fbb);
@@ -197,7 +197,7 @@ STATUS InferShapePass::Run(MetaGraphT *graph) {
FreeTensors(input_tensors, output_tensors); FreeTensors(input_tensors, output_tensors);
return RET_INFER_ERR; return RET_INFER_ERR;
} }
auto status = NodeInferShpae(node, input_tensors, &output_tensors);
auto status = NodeInferShape(node, input_tensors, &output_tensors);
MS_LOG(DEBUG) << "cur node:" << node->name; MS_LOG(DEBUG) << "cur node:" << node->name;
if (status == RET_INFER_INVALID) { if (status == RET_INFER_INVALID) {
MS_LOG(INFO) << "InferShape shouldn't be done before runtime, name: " << node->name MS_LOG(INFO) << "InferShape shouldn't be done before runtime, name: " << node->name


+ 1
- 0
mindspore/lite/tools/optimizer/fusion/constant_folding_fusion.cc View File

@@ -121,6 +121,7 @@ kernel::LiteKernel *GetLiteKernel(std::vector<Tensor *> inputs, std::vector<Tens
auto prim_t = lite::GetPrimitiveT(cnode->input(0)); auto prim_t = lite::GetPrimitiveT(cnode->input(0));
flatbuffers::FlatBufferBuilder fbb(INITIAL_SIZE); flatbuffers::FlatBufferBuilder fbb(INITIAL_SIZE);
auto prim = lite::ConvertToPrimitive(prim_t, &fbb); auto prim = lite::ConvertToPrimitive(prim_t, &fbb);
delete prim_t;
if (prim == nullptr) { if (prim == nullptr) {
fbb.Clear(); fbb.Clear();
MS_LOG(ERROR) << "get primitive failed."; MS_LOG(ERROR) << "get primitive failed.";


+ 1
- 0
mindspore/lite/tools/optimizer/graph/infershape_pass.cc View File

@@ -397,6 +397,7 @@ bool InferShapePass::Run(const FuncGraphPtr &func_graph) {


flatbuffers::FlatBufferBuilder fbb(INITIAL_SIZE); flatbuffers::FlatBufferBuilder fbb(INITIAL_SIZE);
auto prim = lite::ConvertToPrimitive(prim_t, &fbb); auto prim = lite::ConvertToPrimitive(prim_t, &fbb);
delete prim_t;
if (prim == nullptr) { if (prim == nullptr) {
MS_LOG(ERROR) << "get primitive failed."; MS_LOG(ERROR) << "get primitive failed.";
FreeTensors(&input_tensors); FreeTensors(&input_tensors);


Loading…
Cancel
Save