From 49a0ae551d6abeb1c53d2ee6256bf7e8747675b4 Mon Sep 17 00:00:00 2001 From: pawelpiotrowicz <48519735+pawelpiotrowicz@users.noreply.github.com> Date: Thu, 29 Aug 2019 19:22:48 +0200 Subject: [PATCH] no_fork : Remove allocation for empty vector (#3544) * no_fork : Remove allication for empty vector * style --- src/ngraph/op/constant.hpp | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/ngraph/op/constant.hpp b/src/ngraph/op/constant.hpp index 22df21677..a7d4aeb5d 100644 --- a/src/ngraph/op/constant.hpp +++ b/src/ngraph/op/constant.hpp @@ -95,37 +95,39 @@ namespace ngraph ", expected ", shape_size(m_shape), "."); - - if (type.is_integral()) + if (values.size()) { - if (type.is_signed()) + if (type.is_integral()) { - std::vector<int64_t> dvalues = parse_string<int64_t>(values); - if (values.size() == 1 && shape_size(m_shape) != 1) + if (type.is_signed()) { - dvalues = std::vector<int64_t>(shape_size(m_shape), dvalues[0]); + std::vector<int64_t> dvalues = parse_string<int64_t>(values); + if (values.size() == 1 && shape_size(m_shape) != 1) + { + dvalues = std::vector<int64_t>(shape_size(m_shape), dvalues[0]); + } + write_values(dvalues); + } + else + { + std::vector<uint64_t> dvalues = parse_string<uint64_t>(values); + if (values.size() == 1 && shape_size(m_shape) != 1) + { + dvalues = std::vector<uint64_t>(shape_size(m_shape), dvalues[0]); + } + write_values(dvalues); } - write_values(dvalues); } else { - std::vector<uint64_t> dvalues = parse_string<uint64_t>(values); + std::vector<double> dvalues = parse_string<double>(values); if (values.size() == 1 && shape_size(m_shape) != 1) { - dvalues = std::vector<uint64_t>(shape_size(m_shape), dvalues[0]); + dvalues = std::vector<double>(shape_size(m_shape), dvalues[0]); } write_values(dvalues); } } - else - { - std::vector<double> dvalues = parse_string<double>(values); - if (values.size() == 1 && shape_size(m_shape) != 1) - { - dvalues = std::vector<double>(shape_size(m_shape), dvalues[0]); - } - write_values(dvalues); - } constructor_validate_and_infer_types(); } -- 2.18.0