From e7bb0ecee095ce3be0104b1d65acc91054b97a49 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Thu, 18 Jul 2019 14:06:45 +0300 Subject: [PATCH] gapi: fix build with unique_ptr avoid generation of copy ctors with unique_ptr members --- modules/gapi/src/backends/fluid/gfluidbackend.cpp | 5 +++-- modules/gapi/src/backends/fluid/gfluidbackend.hpp | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/gapi/src/backends/fluid/gfluidbackend.cpp b/modules/gapi/src/backends/fluid/gfluidbackend.cpp index 0ec05c2410..9115824587 100644 --- a/modules/gapi/src/backends/fluid/gfluidbackend.cpp +++ b/modules/gapi/src/backends/fluid/gfluidbackend.cpp @@ -1328,7 +1328,7 @@ cv::gimpl::GParallelFluidExecutable::GParallelFluidExecutable(const ade::Graph const std::vector ¶llelOutputRois) { for (auto&& rois : parallelOutputRois){ - tiles.emplace_back(g, graph_data, rois.rois); + tiles.emplace_back(new GFluidExecutable(g, graph_data, rois.rois)); } } @@ -1343,7 +1343,8 @@ void cv::gimpl::GParallelFluidExecutable::run(std::vector &&input_objs, std::vector &&output_objs) { for (auto& tile : tiles ){ - tile.run(input_objs, output_objs); + GAPI_Assert((bool)tile); + tile->run(input_objs, output_objs); } } diff --git a/modules/gapi/src/backends/fluid/gfluidbackend.hpp b/modules/gapi/src/backends/fluid/gfluidbackend.hpp index ad5e5f837d..4862b14f56 100644 --- a/modules/gapi/src/backends/fluid/gfluidbackend.hpp +++ b/modules/gapi/src/backends/fluid/gfluidbackend.hpp @@ -118,6 +118,8 @@ FluidGraphInputData fluidExtractInputDataFromGraph(const ade::Graph &m_g, const class GFluidExecutable final: public GIslandExecutable { + GFluidExecutable(const GFluidExecutable&) = delete; // due std::unique_ptr in members list + const ade::Graph &m_g; GModel::ConstGraph m_gm; @@ -161,7 +163,9 @@ public: class GParallelFluidExecutable final: public GIslandExecutable { - std::vector tiles; + GParallelFluidExecutable(const GParallelFluidExecutable&) = delete; // due std::unique_ptr in members list + + std::vector> tiles; public: GParallelFluidExecutable(const ade::Graph &g, const FluidGraphInputData &graph_data,