From 9cd86cde62033fca7f127ad7e3f1869198de1261 Mon Sep 17 00:00:00 2001 From: Giulio Eulisse <10544+ktf@users.noreply.github.com> Date: Tue, 29 Sep 2020 13:30:59 +0200 Subject: [PATCH] DPL: avoid copying shared pointers while reading --- Framework/Core/include/Framework/TableTreeHelpers.h | 2 +- Framework/Core/src/TableTreeHelpers.cxx | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Framework/Core/include/Framework/TableTreeHelpers.h b/Framework/Core/include/Framework/TableTreeHelpers.h index 91adac34bae3a..9a9bcd9200255 100644 --- a/Framework/Core/include/Framework/TableTreeHelpers.h +++ b/Framework/Core/include/Framework/TableTreeHelpers.h @@ -212,7 +212,7 @@ class TreeToTable TTreeReader* mTreeReader; // a list of ColumnIterator* - std::vector> mColumnIterators; + std::vector> mColumnIterators; // Append next set of branch values to the // corresponding table columns diff --git a/Framework/Core/src/TableTreeHelpers.cxx b/Framework/Core/src/TableTreeHelpers.cxx index ea8699e490d3c..b7de8bf802aad 100644 --- a/Framework/Core/src/TableTreeHelpers.cxx +++ b/Framework/Core/src/TableTreeHelpers.cxx @@ -738,7 +738,7 @@ TreeToTable::~TreeToTable() bool TreeToTable::addColumn(const char* colname) { - auto colit = std::make_shared(mTreeReader, colname); + auto colit = std::make_unique(mTreeReader, colname); auto stat = colit->getStatus(); if (stat) { mColumnIterators.push_back(std::move(colit)); @@ -763,7 +763,7 @@ bool TreeToTable::addAllColumns() auto br = (TBranch*)branchList->At(ii); // IMPROVE: make sure that a column is not added more than one time - auto colit = std::make_shared(mTreeReader, br->GetName()); + auto colit = std::make_unique(mTreeReader, br->GetName()); if (colit->getStatus()) { mColumnIterators.push_back(std::move(colit)); } else { @@ -776,14 +776,14 @@ bool TreeToTable::addAllColumns() void TreeToTable::push() { - for (auto colit : mColumnIterators) { + for (auto&& colit : mColumnIterators) { colit->push(); } } void TreeToTable::reserve(size_t s) { - for (auto column : mColumnIterators) { + for (auto&& column : mColumnIterators) { column->reserve(s); } } @@ -805,7 +805,7 @@ std::shared_ptr TreeToTable::finalize() // prepare the elements needed to create the final table std::vector> array_vector; std::vector> schema_vector; - for (auto colit : mColumnIterators) { + for (auto&& colit : mColumnIterators) { colit->finish(); array_vector.push_back(colit->getArray()); schema_vector.push_back(colit->getSchema());