diff --git a/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.cc b/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.cc index fbbd4adcba7be5e74216409ae6294b5f8be661c7..cc7c0f5b110a372696a03473c45e13bd717e83a9 100644 --- a/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.cc +++ b/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.cc @@ -90,23 +90,29 @@ STATUS BatchNormConvertScalePass::DoFusion(MetaGraphT *graph, const std::string return RET_OK; } auto bnPath = matchedPath.at(bnOpName); - status = GetTransParam(graph, bnPath); - if (status != RET_OK) { - MS_LOG(ERROR) << "GetTransParam failed: " << status; - return status; - } - status = GenNewScaleTensor(graph, bnPath); if (status != RET_OK) { MS_LOG(ERROR) << "GenNewScaleTensor failed: " << status; + delete[] transScale; + delete[] transBias; + transScale = nullptr; + transBias = nullptr; return status; } status = ConvertBNToScale(graph, bnPath); if (status != RET_OK) { MS_LOG(ERROR) << "GenNewScaleTensor failed: " << status; + delete[] transScale; + delete[] transBias; + transScale = nullptr; + transBias = nullptr; return status; } + delete[] transScale; + delete[] transBias; + transScale = nullptr; + transBias = nullptr; return RET_OK; } STATUS BatchNormConvertScalePass::ConvertBNToScale(MetaGraphT *graph, const std::shared_ptr &bnPath) { @@ -245,6 +251,10 @@ STATUS BatchNormConvertScalePass::GetTransParam(MetaGraphT *graph, const std::sh // cal transScale, tf : scale/sqrt(variance + eps); caffe : 1/sqrt(variance + eps) if (memcpy_s(transScale, bnChannel * sizeof(float), varianceData, bnChannel * sizeof(float)) != 0) { MS_LOG(ERROR) << "memcpy_s transScale error"; + delete[] transScale; + delete[] transBias; + transScale = nullptr; + transBias = nullptr; return RET_ERROR; } // 1/sqrt(variance + eps) @@ -370,14 +380,5 @@ STATUS BatchNormConvertScalePass::GetBnEpsilon(MetaGraphT *graph) { } return RET_OK; } - -BatchNormConvertScalePass::~BatchNormConvertScalePass() { - if (this->transScale != nullptr) { - delete (this->transScale); - } - if (this->transBias != nullptr) { - delete (this->transBias); - } -} } // namespace lite } // namespace mindspore diff --git a/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.h b/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.h index 06a6833706551c7a7adcc40bfe379a22defee8e8..7163914b07288429f5a264365e5094c838139fe1 100644 --- a/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.h +++ b/mindspore/lite/tools/converter/legacy_optimizer/fusion/batchnorm_convert_scale_pass.h @@ -36,7 +36,7 @@ class BatchNormConvertScalePass : public FusionPass { public: BatchNormConvertScalePass() = default; - ~BatchNormConvertScalePass() override; + ~BatchNormConvertScalePass() = default; STATUS DefinePattern() override;