From 58dd421d58637949887a096dd25162fd4cf23adf Mon Sep 17 00:00:00 2001 From: Maria Kaglinskaya Date: Thu, 17 Jun 2021 16:11:31 +0300 Subject: [PATCH] Fix klocwork issues in pruning transformation (#6175) * Fix klockwork issues in pruning transformation * Fixed tabs --- .../src/offline_transformations/include/mask_attribute.hpp | 6 ++++-- .../offline_transformations/src/pruning/propagate_masks.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/inference-engine/src/offline_transformations/include/mask_attribute.hpp b/inference-engine/src/offline_transformations/include/mask_attribute.hpp index 48c5b4ee9f0..282f81b054e 100644 --- a/inference-engine/src/offline_transformations/include/mask_attribute.hpp +++ b/inference-engine/src/offline_transformations/include/mask_attribute.hpp @@ -96,7 +96,8 @@ public: auto mask_2_iter = mask->rbegin(); while (mask_1_iter != rend() && - mask_2_iter != mask->rend()) { + mask_2_iter != mask->rend() && + result_iter != result_mask->rend()) { // Merge mask dimension values for both masks // Example: (MaskValue[1,2,3,4], MaskValue[2,3]) -> MaskValue[2,3] for (const auto & value : *mask_1_iter) { @@ -119,7 +120,8 @@ public: auto mask_2_iter = mask->rbegin(); while (mask_1_iter != rend() && - mask_2_iter != mask->rend()) { + mask_2_iter != mask->rend() && + result_iter != result_mask->rend()) { // Union mask dimension values for both masks // Example: (MaskValue[1,2,3,4], MaskValue[2, 5]) -> MaskValue[1, 2, 3, 4, 5] for (const auto & value : *mask_1_iter) { diff --git a/inference-engine/src/offline_transformations/src/pruning/propagate_masks.cpp b/inference-engine/src/offline_transformations/src/pruning/propagate_masks.cpp index 424b6ae9583..271b200f31b 100644 --- a/inference-engine/src/offline_transformations/src/pruning/propagate_masks.cpp +++ b/inference-engine/src/offline_transformations/src/pruning/propagate_masks.cpp @@ -246,6 +246,9 @@ public: // To allow pruning on weights (allow reshape input Group (0) dim changing) replace Reshape Shape constant // [G, 1, 1, X, Y, Z] by [-1, 1, 1, X, Y, Z]. auto old_shape_const = std::dynamic_pointer_cast(m_shape.get_node_shared_ptr()); + if (!old_shape_const) { + return false; + } auto shape_value = old_shape_const.get()->cast_vector(); shape_value[0] = -1; auto new_const = opset6::Constant::create(old_shape_const->get_element_type(), @@ -462,6 +465,9 @@ public: const auto & pattern_map = m.get_pattern_value_map(); const auto & m_output = pattern_map.at(concat); auto concat_ptr = std::dynamic_pointer_cast(m_output.get_node_shared_ptr()); + if (!concat_ptr) { + return false; + } auto axis = concat_ptr->get_concatenation_axis(); auto inputs = concat_ptr->inputs();