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,