Skip to content

Commit 2fcbb79

Browse files
fjonasALICEsawenzel
authored andcommitted
suggested changes for de-duplication of code PR15205
1 parent d53ad16 commit 2fcbb79

File tree

1 file changed

+25
-36
lines changed

1 file changed

+25
-36
lines changed

Framework/AODMerger/src/aodMerger.cxx

Lines changed: 25 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,28 @@ int main(int argc, char* argv[])
120120
TMap* parentFiles = nullptr;
121121
int totalMergedDFs = 0;
122122
int mergedDFs = 0;
123+
124+
// Write all accumulated trees to outputDir, update stats, and clean up state.
125+
auto flushTrees = [&](bool resetState) {
126+
if (!outputDir) {
127+
return;
128+
}
129+
for (auto const& tree : trees) {
130+
outputDir->cd();
131+
tree.second->Write();
132+
sizeCompressed[tree.first] += tree.second->GetZipBytes();
133+
sizeUncompressed[tree.first] += tree.second->GetTotBytes();
134+
delete tree.second;
135+
}
136+
if (resetState) {
137+
outputDir = nullptr;
138+
trees.clear();
139+
offsets.clear();
140+
mergedDFs = 0;
141+
currentDirSize = 0;
142+
}
143+
};
144+
123145
while (in.good() && exitCode == 0) {
124146
in >> line;
125147

@@ -195,17 +217,7 @@ int main(int argc, char* argv[])
195217
if (verbosity > 0) {
196218
printf("Folder name changed: closing folder %s.\n", outputDir->GetName());
197219
}
198-
for (auto const& tree : trees) {
199-
outputDir->cd();
200-
tree.second->Write();
201-
sizeCompressed[tree.first] += tree.second->GetZipBytes();
202-
sizeUncompressed[tree.first] += tree.second->GetTotBytes();
203-
delete tree.second;
204-
}
205-
outputDir = nullptr;
206-
trees.clear();
207-
offsets.clear();
208-
mergedDFs = 0;
220+
flushTrees(true);
209221
}
210222

211223
if (verbosity > 0) {
@@ -422,21 +434,7 @@ int main(int argc, char* argv[])
422434
if (verbosity > 0) {
423435
printf("Maximum size reached: %ld. Closing folder %s.\n", currentDirSize, dfName);
424436
}
425-
for (auto const& tree : trees) {
426-
// printf("Writing %s\n", tree.first.c_str());
427-
outputDir->cd();
428-
tree.second->Write();
429-
430-
// stats
431-
sizeCompressed[tree.first] += tree.second->GetZipBytes();
432-
sizeUncompressed[tree.first] += tree.second->GetTotBytes();
433-
434-
delete tree.second;
435-
}
436-
outputDir = nullptr;
437-
trees.clear();
438-
offsets.clear();
439-
mergedDFs = 0;
437+
flushTrees(true);
440438
}
441439
}
442440
inputFile->Close();
@@ -447,16 +445,7 @@ int main(int argc, char* argv[])
447445
parentFiles->Write("parentFiles", TObject::kSingleKey);
448446
}
449447

450-
for (auto const& tree : trees) {
451-
outputDir->cd();
452-
tree.second->Write();
453-
454-
// stats
455-
sizeCompressed[tree.first] += tree.second->GetZipBytes();
456-
sizeUncompressed[tree.first] += tree.second->GetTotBytes();
457-
458-
delete tree.second;
459-
}
448+
flushTrees(false);
460449

461450
outputFile->Write();
462451
outputFile->Close();

0 commit comments

Comments
 (0)