Skip to content

Commit 9cd86cd

Browse files
committed
DPL: avoid copying shared pointers while reading
1 parent ff5925a commit 9cd86cd

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

Framework/Core/include/Framework/TableTreeHelpers.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ class TreeToTable
212212
TTreeReader* mTreeReader;
213213

214214
// a list of ColumnIterator*
215-
std::vector<std::shared_ptr<ColumnIterator>> mColumnIterators;
215+
std::vector<std::unique_ptr<ColumnIterator>> mColumnIterators;
216216

217217
// Append next set of branch values to the
218218
// corresponding table columns

Framework/Core/src/TableTreeHelpers.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ TreeToTable::~TreeToTable()
738738

739739
bool TreeToTable::addColumn(const char* colname)
740740
{
741-
auto colit = std::make_shared<ColumnIterator>(mTreeReader, colname);
741+
auto colit = std::make_unique<ColumnIterator>(mTreeReader, colname);
742742
auto stat = colit->getStatus();
743743
if (stat) {
744744
mColumnIterators.push_back(std::move(colit));
@@ -763,7 +763,7 @@ bool TreeToTable::addAllColumns()
763763
auto br = (TBranch*)branchList->At(ii);
764764

765765
// IMPROVE: make sure that a column is not added more than one time
766-
auto colit = std::make_shared<ColumnIterator>(mTreeReader, br->GetName());
766+
auto colit = std::make_unique<ColumnIterator>(mTreeReader, br->GetName());
767767
if (colit->getStatus()) {
768768
mColumnIterators.push_back(std::move(colit));
769769
} else {
@@ -776,14 +776,14 @@ bool TreeToTable::addAllColumns()
776776

777777
void TreeToTable::push()
778778
{
779-
for (auto colit : mColumnIterators) {
779+
for (auto&& colit : mColumnIterators) {
780780
colit->push();
781781
}
782782
}
783783

784784
void TreeToTable::reserve(size_t s)
785785
{
786-
for (auto column : mColumnIterators) {
786+
for (auto&& column : mColumnIterators) {
787787
column->reserve(s);
788788
}
789789
}
@@ -805,7 +805,7 @@ std::shared_ptr<arrow::Table> TreeToTable::finalize()
805805
// prepare the elements needed to create the final table
806806
std::vector<std::shared_ptr<arrow::Array>> array_vector;
807807
std::vector<std::shared_ptr<arrow::Field>> schema_vector;
808-
for (auto colit : mColumnIterators) {
808+
for (auto&& colit : mColumnIterators) {
809809
colit->finish();
810810
array_vector.push_back(colit->getArray());
811811
schema_vector.push_back(colit->getSchema());

0 commit comments

Comments
 (0)