Skip to content
Snippets Groups Projects
Commit 6f56c289 authored by Jonathan Youett's avatar Jonathan Youett
Browse files

Use shared_ptr to store the transfer operators to avoid memory leaks

parent fc84f38a
No related branches found
No related tags found
No related merge requests found
Pipeline #
...@@ -83,13 +83,12 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat ...@@ -83,13 +83,12 @@ void solveObstacleProblemByMMGSolver(const GridType& grid, const MatrixType& mat
// we need a vector of pointers to the transfer operator base class // we need a vector of pointers to the transfer operator base class
using Transfer = TruncatedCompressedMGTransfer<VectorType>; using Transfer = TruncatedCompressedMGTransfer<VectorType>;
std::vector<Transfer*> transfer(grid.maxLevel()); std::vector<std::shared_ptr<Transfer> > transfer(grid.maxLevel());
for (size_t i = 0; i < transfer.size(); ++i) for (size_t i = 0; i < transfer.size(); ++i)
{ {
// create transfer operator from level i to i+1 // create transfer operator from level i to i+1
Transfer* t = new Transfer; transfer[i] = std::make_shared<Transfer>();
t->setup(grid, i, i+1); transfer[i]->setup(grid, i, i+1);
transfer[i] = t;
} }
mmgStep.setTransferOperators(transfer); mmgStep.setTransferOperators(transfer);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment