Skip to content

Commit 7c4dae8

Browse files
N-Dekkerdzenanz
authored andcommitted
STYLE: Use unique_ptr for OrthogonalSwath2DPathFilter data members
Also "defaulted" both its default-constructor and its destructor. Made use of modern C++ in-class data member initialization. Follow-up to pull request #2897 commit 3c6f298 "STYLE: Use `unique_ptr` for `ImageToImageMetric` data members"
1 parent 8fa2e4f commit 7c4dae8

2 files changed

Lines changed: 18 additions & 47 deletions

File tree

Modules/Filtering/Path/include/itkOrthogonalSwath2DPathFilter.h

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
#include "itkPathAndImageToPathFilter.h"
2222
#include "itkOrthogonallyCorrected2DParametricPath.h"
2323

24+
#include <memory> // For unique_ptr.
25+
2426
namespace itk
2527
{
2628
/**
@@ -87,8 +89,8 @@ class ITK_TEMPLATE_EXPORT OrthogonalSwath2DPathFilter
8789
using SizeType = typename ImageType::SizeType;
8890

8991
protected:
90-
OrthogonalSwath2DPathFilter();
91-
~OrthogonalSwath2DPathFilter() override;
92+
OrthogonalSwath2DPathFilter() = default;
93+
~OrthogonalSwath2DPathFilter() override = default;
9294
void
9395
PrintSelf(std::ostream & os, Indent indent) const override;
9496

@@ -131,16 +133,16 @@ class ITK_TEMPLATE_EXPORT OrthogonalSwath2DPathFilter
131133
return m_MeritValues[(x * rows * rows) + (f * rows) + (l)];
132134
}
133135

134-
int * m_StepValues; // best y=error coordinate @ x of image for (0,F) ->
135-
// (x+1,L)
136-
double * m_MeritValues;
136+
std::unique_ptr<int[]> m_StepValues{ nullptr }; // best y=error coordinate @ x of image for (0,F) ->
137+
// (x+1,L)
138+
std::unique_ptr<double[]> m_MeritValues{ nullptr };
137139

138-
int * m_OptimumStepsValues; // best step (e value)
139-
// sequence for a
140-
// closed path
141-
OrthogonalCorrectionTablePointer m_FinalOffsetValues;
140+
std::unique_ptr<int[]> m_OptimumStepsValues{ nullptr }; // best step (e value)
141+
// sequence for a
142+
// closed path
143+
OrthogonalCorrectionTablePointer m_FinalOffsetValues{ OrthogonalCorrectionTableType::New() };
142144

143-
SizeType m_SwathSize;
145+
SizeType m_SwathSize{ { 0 } };
144146
};
145147
} // end namespace itk
146148

Modules/Filtering/Path/include/itkOrthogonalSwath2DPathFilter.hxx

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,6 @@
2323

2424
namespace itk
2525
{
26-
/**
27-
* Constructor
28-
*/
29-
template <typename TParametricPath, typename TSwathMeritImage>
30-
OrthogonalSwath2DPathFilter<TParametricPath, TSwathMeritImage>::OrthogonalSwath2DPathFilter()
31-
{
32-
SizeType size;
33-
34-
// Initialize the member variables
35-
size[0] = 0;
36-
size[1] = 0;
37-
m_SwathSize = size;
38-
m_StepValues = nullptr;
39-
m_MeritValues = nullptr;
40-
m_OptimumStepsValues = nullptr;
41-
m_FinalOffsetValues = OrthogonalCorrectionTableType::New();
42-
}
43-
44-
/**
45-
* Destructor
46-
*/
47-
template <typename TParametricPath, typename TSwathMeritImage>
48-
OrthogonalSwath2DPathFilter<TParametricPath, TSwathMeritImage>::~OrthogonalSwath2DPathFilter()
49-
{
50-
delete[] m_StepValues;
51-
delete[] m_MeritValues;
52-
delete[] m_OptimumStepsValues;
53-
}
5426

5527
/**
5628
* GenerateData Performs the reflection
@@ -64,12 +36,9 @@ OrthogonalSwath2DPathFilter<TParametricPath, TSwathMeritImage>::GenerateData()
6436

6537
// Re-initialize the member variables
6638
m_SwathSize = swathMeritImage->GetLargestPossibleRegion().GetSize();
67-
delete[] m_StepValues;
68-
delete[] m_MeritValues;
69-
delete[] m_OptimumStepsValues;
70-
m_StepValues = new int[m_SwathSize[0] * m_SwathSize[1] * m_SwathSize[1]];
71-
m_MeritValues = new double[m_SwathSize[0] * m_SwathSize[1] * m_SwathSize[1]];
72-
m_OptimumStepsValues = new int[m_SwathSize[0]];
39+
m_StepValues.reset(new int[m_SwathSize[0] * m_SwathSize[1] * m_SwathSize[1]]);
40+
m_MeritValues.reset(new double[m_SwathSize[0] * m_SwathSize[1] * m_SwathSize[1]]);
41+
m_OptimumStepsValues.reset(new int[m_SwathSize[0]]);
7342
m_FinalOffsetValues->Initialize();
7443

7544
// Perform the remaining calculations; use dynamic programming
@@ -196,9 +165,9 @@ void
196165
OrthogonalSwath2DPathFilter<TParametricPath, TSwathMeritImage>::PrintSelf(std::ostream & os, Indent indent) const
197166
{
198167
Superclass::PrintSelf(os, indent);
199-
os << indent << "StepValues: " << m_StepValues << std::endl;
200-
os << indent << "MeritValues: " << m_MeritValues << std::endl;
201-
os << indent << "OptimumStepsValues: " << m_OptimumStepsValues << std::endl;
168+
os << indent << "StepValues: " << m_StepValues.get() << std::endl;
169+
os << indent << "MeritValues: " << m_MeritValues.get() << std::endl;
170+
os << indent << "OptimumStepsValues: " << m_OptimumStepsValues.get() << std::endl;
202171
os << indent << "FinalOffsetValues: " << m_FinalOffsetValues << std::endl;
203172
}
204173

0 commit comments

Comments
 (0)